我有一个整数数组列表(mainList),里面有整数数组(subList),我试图将整数数组元素添加到 mainList 并稍后显示它们。将 subList 添加到 mainList 并显示 subList 中的所有元素。
2 subLists = {1,2,4},{3,2,1}
mainList =[{1,2,4},{3,2,1}]
Display : 1,2,4,3,2,1
- 如何轻松地从 mainList 中检索元素
- 如何一次添加子列表而不循环
以下是我尝试将子列表添加到主列表的方法
//Adding elements
ArrayList<ArrayList<Integer>> mainList = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> subList = new ArrayList<Integer>();
for(int i=0;i<10;i++) {
for(int j=i+1;j<10;j++){
//Do something and add elements to subList
subList.add(element[j]) }
mainList.add(subList);
// When I clear subList mainList is also getting cleared. I want to add the elements of subList to mainList. I was able to do it with loops but how to do this way
subList.clear();
}
//Printing, How do I get the elements from mainList which will have subLists
for(Integer i:mainList){
System.out.println(i);
}
}
你的代码
ArrayList<Integer><ArrayList<Integer>> mainList = new ArrayList<ArrayList<Integer>>();
无法编译,请参阅我在下面的代码中的编辑:
import com.sun.deploy.util.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
ArrayList<ArrayList<Integer>> mainList = new ArrayList<ArrayList<Integer>>();
Integer[] sub1 = {1,2,4};
Integer[] sub2 = {3,2,1};
ArrayList<Integer> subList1 = new ArrayList<>(Arrays.asList(sub1));
ArrayList<Integer> subList2 = new ArrayList<>(Arrays.asList(sub2));
mainList.add(subList1);
mainList.add(subList2); //[[1, 2, 4], [3, 2, 1]]
ArrayList<Integer> intValues = new ArrayList<>();
for(ArrayList<Integer> inner: mainList){
intValues.addAll(inner); // add inner list elements to Integer list
}
List<String> strings = intValues.stream().map(Object::toString)
.collect(Collectors.toList()); // converts to string list
System.out.println(StringUtils.join(strings, ",")); // prints comma separated string
}
}
Output:
1,2,4,3,2,1
我的解释在代码注释中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)