Java 设置Arraylist的Arraylist的值

Java 设置Arraylist的Arraylist的值,java,android,arraylist,Java,Android,Arraylist,您好,我想填写我的Arraylist of Arraylist,名为问题列表\u部分 为此,我制作了一个名为QUESTION\u ID\u的临时数组列表,该列表位于\u SectionId\u temp中,添加到QuestionIdList\u Section 我的代码如下,以便您了解我是如何编码的: public static ArrayList<String> QUESTION_ID_Of_SectionId_Temp = new ArrayList<String>(

您好,我想填写我的Arraylist of Arraylist,名为
问题列表\u部分

为此,我制作了一个名为
QUESTION\u ID\u的临时数组列表,该列表位于\u SectionId\u temp
中,添加到
QuestionIdList\u Section

我的代码如下,以便您了解我是如何编码的:

public static ArrayList<String> QUESTION_ID_Of_SectionId_Temp = new ArrayList<String>();
public static ArrayList<ArrayList<String>> QuestionIdList_Section = new ArrayList<ArrayList<String>>();

QUESTION_ID_Of_SectionId_Temp.add("Hello");
QUESTION_ID_Of_SectionId_Temp.add("Hiii");

QuestionIdList_Section.add(0,QUESTION_ID_Of_SectionId_Temp);

Log.i(TAG, "******Before " + QuestionIdList_Section);
Log.i(TAG, "******Before "+ QUESTION_ID_Of_SectionId_Temp);

QUESTION_ID_Of_SectionId_Temp.clear();

Log.i(TAG, "******After  " + QuestionIdList_Section);
Log.i(TAG, "******After " + QUESTION_ID_Of_SectionId_Temp);
有人能帮我理解我在这里缺少什么吗。我想清除temp arraylist,这样我就可以为
UESTION\u ID\u Of_Section ID\u temp
设置不同的值,因此对于
QuestionIdList\u Section
的第二个索引,我将设置不同的值


提前感谢。

部分ID的问题ID\u Temp
仅供参考

因此,如果清除它,
QuestionIdList\u部分
中的值也将被清除

你应该做的是


QUESTION_ID_Of_SectionId_Temp=new ArrayList()

而不是


SectionId\u Temp.clear()的问题ID\u

您正在清除\u section ID\u Temp
数组的
问题\u ID\u,这意味着它没有元素。第二次“之后”打印显示为空


第一个“之后”显示
问题列表部分的内容
,该部分仍然包含上面的
数组列表
,它现在是空的。

问题列表\u节关联的
数组列表
包含与\u节ID\u Temp的
问题ID\u关联的
数组列表
的引用。
因此,在清除临时ArrayList时,它还将反映在
问题列表\u部分中的ArrayList上

您可能需要创建临时数组的新实例,并将其添加到主数组列表中,如下所示:

QUESTION_ID_Of_SectionId_Temp = new ArrayList<String>();
QuestionIdList_Section.add(QUESTION_ID_Of_SectionId_Temp);
QUESTION_ID_Of_SectionId_Temp=new ArrayList();
问题列表\u部分。添加(问题\u部分ID\u临时);

执行此操作后,添加到
QUESTION\u ID\u Of_Section ID\u Temp
的每个元素都将显示在
QuestionIdList\u Section
的第二个索引中。是否清除了QuestionIdList\u部分?使用
QUESTION\u ID\u Of_Section ID\u Temp.删除(项)
而不是
QUESTION\u ID\u Of_Section ID\u Temp.清除()只需更改
问题列表\u部分。添加(0,问题ID\u部分ID\u临时)添加到
QuestionIdList\u部分。添加(0,新的ArrayList(questionID\u部分ID\u临时))和您的代码将工作,因为您将需要复制ArrayList,而不是在清理ITI之前传递引用,作为提示,请查看java的命名约定:很好的答案。谢谢你的解释,谢谢!你救了我几个小时。
QUESTION_ID_Of_SectionId_Temp = new ArrayList<String>();
QuestionIdList_Section.add(QUESTION_ID_Of_SectionId_Temp);