制作二维arraylist

时间:2017-11-13 14:40:14

标签: arrays arraylist

我想制作一个二维的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,活性,名称], [活动名称,活动,名称]等

2 个答案:

答案 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);

  }

}

这只是逻辑