在for循环</string>的开头清空List <string>

时间:2015-04-10 08:54:26

标签: java android for-loop

我有一个for循环并且它有一个List,我希望每次for循环开始时它都为空。

我全球都有这个,

List<String> topDescription = new ArrayList<String>();

这是for循环,

  for (int j = 0; j < subMenuArray.length(); j++) {
            JSONObject subMenuObject = subMenuArray
                    .getJSONObject(j);

            if ((subMenuObject.getString("Description"))
                    .equals(sizeSelectedItem)) {

                //empty the topDescription here

                JSONArray extraItemEntityArray = subMenuObject
                        .getJSONArray("ExtraItemEntity");

                for (int k = 0; k < extraItemEntityArray.length(); k++) {
                    JSONObject objectE = extraItemEntityArray
                            .getJSONObject(k);
                    if ((objectE.getString("Description")) != null
                            && (objectE.getString("Type"))
                                    .equals("E")) {

                        topDescription.add(objectE
                                .getString("Description"));

                    }

                }
                break;
            }

        }

3 个答案:

答案 0 :(得分:3)

以下是代码,但我不确定您要查找的是什么,每次迭代都会使列表为空。

你可以用两种方式做到这一点,一种是清算,另一种是分配新的arraylist,

topDescription.clear();

topDescription = new ArrayList<Integer>();

答案 1 :(得分:0)

为什么不制作新的引用并将旧对象留给垃圾收集器?:

topDescription = new ArrayList<String>();

答案 2 :(得分:0)

清除现有列表不是创建新引用。它重用了java堆中已存在的引用,但清除了列表中的内容,这使得列表可以重复使用,并增加了JVM的额外开销。