我想制作一个二维的arraylist。
目前我有一个显示所有值的arraylist。
我想将这些值放在arraylist的arraylist中,如下所示:
来自[value1,value2,value3,value4,value5,value6]
要
[[value1,value2,value3],[value4,value5,value6]]
我怎样才能做到这一点?
提前致谢
编辑:所以我有一个带有一些随机值的字符串(字符串)
[**Activity_Name,Activity,Name**,value4,value5,value6,value7,value8,value9]
我想将另外一个arraylist中的每3个值分组,如下所示:
[[value1,value2,value],
[value4,value5,value6] etc
但此刻它只给出了前3个组件的价值所以: [[activityname,活性,名称], [活动名称,活动,名称]等
答案 0 :(得分:1)
这是一个简单的例子,一个整数列表列表:
ArrayList<ArrayList<Integer>> a = new ArrayList<>();
a.add(new ArrayList<>(Arrays.asList(1, 2, 3)));
a.add(new ArrayList<>(Arrays.asList(3, 4, 5)));
System.out.println(a);
输出:
[[1,2,3],[3,4,5]]
这就是你想要的,只是一些简单的数组列表,将列表添加到这样的另一个列表有点难看,但只有Arrays.asList(1, 2, 3)
在Java中不起作用。
好的,这是我的扩展答案,它将列表分为3个元素子列表,您可以使用ArrayList.subList
:
ArrayList<String> src = new ArrayList<>(Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9"));
ArrayList<ArrayList<String>> dst = new ArrayList<>();
for (int i = 0; i < src.size(); i+=3) {
dst.add(new ArrayList<>(src.subList(i, i + 3)));
}
System.out.println(dst);
输出:
[[1,2,3],[4,5,6],[7,8,9]]
答案 1 :(得分:0)
假设您要创建一个字符串的二维arraylist,您可以在Java 8中执行以下操作。
public class Test {
public static void print2DStringList(List<List<String>> twoDList){
if(twoDList != null){
System.out.println("*****2D list content*****");
for(List<String> sublist: twoDList){
for(String str: sublist){
System.out.println(str);
}
System.out.println("-----------");
}
}
}
public static void main(String... args){
List<List<String>> twoDList = new ArrayList<>();
for(int i=1; i <= 2; i++){
twoDList.add(new ArrayList<String>());
for(int j=1; j <= 3; j++){
twoDList.get(i).add("Sub list " + i + " item " + j);
}
}
System.out.println("=> Initialize List");
print2DStringList(twoDList);
//Adding an item into sublist2 of twoDList
twoDList.get(1).add("Here is another item");
System.out.println("=> After adding another item");
print2DStringList(twoDList);
//modifying the first item of sublist1 of twoDList
twoDList.get(0).set(0,"***Sub list 1 item 1***");
System.out.println("=> After modifying the first item of sublist1");
print2DStringList(twoDList);
}
}
这只是逻辑