有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java设置Arraylist的Arraylist的值

你好,我想填写我的Arraylist of Arraylist,名为QuestionIdList_Section
为此,我制作了名为QUESTION_ID_Of_SectionId_Temp的临时数组列表,在添加到QuestionIdList_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);

在执行代码之后,我得到了两个变量的不同结果

详情如下:

******Before [[Hello, Hiiii]]
******Before [Hello, Hiiii]
******After [[]]
******After []

有人能帮我理解我在这里缺少什么吗。我想清除temp arraylist,这样我可以为UESTION_ID_Of_SectionId_Temp设置不同的值,所以对于QuestionIdList_Section的第二个索引,我将设置不同的值

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    QUESTION_ID_Of_SectionId_Temp只是一个参考

    因此,如果清除它,QuestionIdList_Section中的值也将被清除

    你应该做的是

    QUESTION_ID_Of_SectionId_Temp = new ArrayList<String>();

    而不是

    QUESTION_ID_Of_SectionId_Temp.clear();