Java 将一个ArrayList添加到另一个ArrayList
我在向Java 将一个ArrayList添加到另一个ArrayList,java,file,arraylist,multidimensional-array,Java,File,Arraylist,Multidimensional Array,我在向ArrayList添加新元素时遇到问题,我将向您展示我的问题: ArrayList<ArrayList<String>> arr1= new ArrayList<ArrayList<String>>(); ArrayList<String> arr2= new ArrayList<String>(); 我需要的是将每个单词放入arr2,然后使用以下代码将arr2放入arr1: while ((line = file.
ArrayList
添加新元素时遇到问题,我将向您展示我的问题:
ArrayList<ArrayList<String>> arr1= new ArrayList<ArrayList<String>>();
ArrayList<String> arr2= new ArrayList<String>();
我需要的是将每个单词放入arr2,然后使用以下代码将arr2放入arr1:
while ((line = file.readLine()) != null) {
String[] words = line.split("\\,");
if (arr2.isEmpty()) {
for (int ae = 0; ae < words.length; ae++) {
arr2.add(ae, words[ae]);
}
arr1.add(arr2);
} else {
for (int ae = 0; ae < words.length; ae++) {
arr2.set(ae, words[ae]);
}
arr1.add(arr2);
}
}
file.close();
while((line=file.readLine())!=null){
String[]words=line.split(“\\,”);
if(arr2.isEmpty()){
for(int-ae=0;ae
所以我需要的是:[[a,b,c,d],[e,f,g,h],[I,j,k,l]
但是我得到:[[I,j,k,l],[I,j,k,l],[I,j,k,l]
有什么解决办法吗 在
java
中,它处理引用,因此每次阅读该行时都必须创建新的arr2
,因为当您将arr2
添加到arr1
中时,它仍然保留arr2
的引用,因此,您对arr2所做的每个更改都会影响arr1中的数组+将要添加到arr1中的数组arr2(它们都是相同的数组)
一种解决方案是在while循环中声明arr2,如下所示
ArrayList arr2=new ArrayList()代码>正如@dehasi在评论中所说
while ((line = file.readLine()) != null) {
ArrayList<String> arr2= new ArrayList<String>();
String[] words = line.split("\\,");
for (int ae = 0; ae < words.length; ae++) {
arr2.add(words[ae]);
}
arr1.add(arr2);
}
file.close();
while((line=file.readLine())!=null){
ArrayList arr2=新的ArrayList();
String[]words=line.split(“\\,”);
for(int-ae=0;ae
希望有帮助。您正在添加相同的列表(arr2)3次。您需要填写和添加单独的(新)列表,而不是重新设置相同的列表。您应该创建一个新的ArrayList arr2=new ArrayList()代码>每次谢谢兄弟!这太有用了!它起作用了
while ((line = file.readLine()) != null) {
ArrayList<String> arr2= new ArrayList<String>();
String[] words = line.split("\\,");
for (int ae = 0; ae < words.length; ae++) {
arr2.add(words[ae]);
}
arr1.add(arr2);
}
file.close();