Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayList返回我添加的最后一个值_Java_Android_Arrays_Arraylist - Fatal编程技术网

Java ArrayList返回我添加的最后一个值

Java ArrayList返回我添加的最后一个值,java,android,arrays,arraylist,Java,Android,Arrays,Arraylist,我有两个数组列表 ArrayList<String> brands = new ArrayList<>() ArrayList<ArrayList<String>> finalBrands = new ArrayList<>(); 另外,我在类中初始化了两个ArrayList(而不是在方法中),所以这不可能是因为这个原因。 P.S ArrayList是私有的、非静态的。最后我找到了一个解决方案。谢谢 我只需要将brands.clear

我有两个数组列表

ArrayList<String> brands = new ArrayList<>()
ArrayList<ArrayList<String>> finalBrands = new ArrayList<>();
另外,我在类中初始化了两个ArrayList(而不是在方法中),所以这不可能是因为这个原因。
P.S ArrayList是私有的、非静态的。

最后我找到了一个解决方案。谢谢


我只需要将
brands.clear()
conds.clear()
替换为
brands=new ArrayList()
conds=new ArrayList()

而不是finalBrands.add(brands);试试finalBrands.addAll(品牌)@KamalNayan我试过了,但每次清除
条件
品牌
都没有帮助,所以以前的数据丢失了。@HenryTwist我正在将
品牌
添加到
最终品牌
中,然后将其删除。看看日志。是的,我明白,问题是你每次都在使用同一个列表并清除它。然后将项目添加到其中。当您调用
finalBrands.add(brands)
时,您会多次添加相同的列表。这里的错误是它不能复制。
reference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
                Keylist.add(dataSnapshot.getKey());
                Valuelist.add(dataSnapshot.getValue().toString());
            }
            if (Keylist.size()==snapshot.getChildrenCount()){
                for (int i =0; i<Keylist.size();i++){
                    reference1.child(Valuelist.get(i)).child(Keylist.get(i)).addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot snapshot) {
                            for (DataSnapshot dataSnapshot: snapshot.getChildren()){
                                if (dataSnapshot.hasChildren()){
                                    brands.add(dataSnapshot.getKey());
                                    conditions.add(dataSnapshot.child("condition").getValue().toString());
                                }
                                if (brands.size()==snapshot.getChildrenCount()-5){
                                    finalBrands.add(brands);
                                    finalConditions.add(conditions);
                                    Log.d("glavniy", finalBrands.toString());
                                    brands.clear();
                                    conditions.clear();
                                }
                            }
                        }


                        @Override
                        public void onCancelled(@NonNull DatabaseError error) {

                        }
                    });
                }
            }
        }
        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });
2021-04-11 12:41:49.272 27641-27641/com.example.main D/glavniy: [[burgerking, gyros, kfc]]
2021-04-11 12:41:49.299 27641-27641/com.example.main D/glavniy: [[gyros, kfc], [gyros, kfc]]
2021-04-11 12:41:49.318 27641-27641/com.example.main D/glavniy: [[gyros], [gyros], [gyros]]