Java 如何遍历ArrayList中的节点值数组?

Java 如何遍历ArrayList中的节点值数组?,java,arrays,arraylist,Java,Arrays,Arraylist,所以我有一个ArrayList,它的值是数组。现在我想遍历每个ArrayList节点,并遍历每个节点上所有相应的数组索引。如果我想在一行中显示整个节点索引(该节点中的所有数组组件),那么最好的方法应该是什么 考虑一个: ArrayList<String[]> arr_list = new ArrayList<String[]>; String array1[] = {"4","5","3","2"}; String array2[] = {"7","1","0","9"

所以我有一个ArrayList,它的值是数组。现在我想遍历每个ArrayList节点,并遍历每个节点上所有相应的数组索引。如果我想在一行中显示整个节点索引(该节点中的所有数组组件),那么最好的方法应该是什么

考虑一个:

ArrayList<String[]> arr_list =  new ArrayList<String[]>;
String array1[] = {"4","5","3","2"};
String array2[] = {"7","1","0","9"};
String array3[] = {"8","4","3","1"};
arr_list.add(0,array1);
arr_list.add(1,array2);
arr_list.add(2,array3);

使用双循环,第一个循环遍历ArrayList,第二个循环遍历每个数组。另一方面,您的数组应该是字符串数组,否则将无法工作

for (int i = 0; i < arr_list.size(); i++) {
    System.out.print(i + " : ");
    for (int j = 0; j < arr_list.get(i).length; j++) {
        System.out.print(arr_list.get(i)[j] + " ");
    }
    System.out.println();
}
for(int i=0;i

这就是您要查找的内容吗?

定义一个可以循环使用的列表列表:

List<List<String>> l = new ArrayList<>();
l.add(Arrays.asList("4", "5", "3", "2"));
l.add(Arrays.asList("7", "1", "0", "9"));
l.add(Arrays.asList("8", "4", "3", "1"));

for (int i = 0; i < l.size(); i++) {
    System.out.println(i + " : " + l.get(i));
}
listl=newarraylist();
l、 添加(数组.asList(“4”、“5”、“3”、“2”);
l、 添加(数组.asList(“7”、“1”、“0”、“9”);
l、 添加(数组.asList(“8”、“4”、“3”、“1”);
对于(int i=0;i

以防万一,您不需要[]并需要将这些空间分隔开

for (int i = 0; i < l.size(); i++) {
    System.out.println(i + " : " + String.join(" ", l.get(i)));
}
for(int i=0;i

编辑

因为很快或稍后,人们将需要使用java8 stream power:

List<List<String>> l = new ArrayList<>();
l.add(Arrays.asList("4", "5", "3", "2"));
l.add(Arrays.asList("7", "1", "0", "9"));
l.add(Arrays.asList("8", "4", "3", "1"));

IntStream.range(0, l.size()).forEach(x -> System.out.println(x + " : " + String.join(" ", l.get(x))));
listl=newarraylist();
l、 添加(数组.asList(“4”、“5”、“3”、“2”);
l、 添加(数组.asList(“7”、“1”、“0”、“9”);
l、 添加(数组.asList(“8”、“4”、“3”、“1”);
IntStream.range(0,l.size()).forEach(x->System.out.println(x+“:”+String.join(“,l.get(x)));
您可以使用foreach循环迭代
数组列表中的元素,然后我们可以编写:

int idx = 0;
for(String[] row : arr_list) {
    System.out.print(idx);
    System.out.print(" :");
    for(String e : row) {
        System.out.print(' ');
        System.out.print(e);
    }
    System.out.println();
    idx++;
}
publicstaticvoidmain(字符串[]args){
ArrayList arr_list=新建ArrayList();
int array1[]={4,5,3,2};
int array2[]={7,1,0,9};
int-array3[]={8,4,3,1};
arr_列表添加(array1);
arr_list.add(array2);
arr_list.add(数组3);

另外,对于(int i=0;i我希望您已经得到了您的答案

String[] arr = {"1","2"};
        String[] arr1 = {"3","4"};
        ArrayList<String[]> ar2 = new ArrayList<>();
        ar2.add(arr);
        ar2.add(arr1);
        int i = 0;
        for(String[] a: ar2 ){
            System.out.println(i+ ": "+Arrays.toString(a).replaceAll("[, \\[ \\]]", " "));
            i++;
        }
String[]arr={“1”,“2”};
字符串[]arr1={“3”,“4”};
ArrayList ar2=新的ArrayList();
ar2.添加(arr);
ar2.add(arr1);
int i=0;
for(字符串[]a:ar2){
System.out.println(i+“:”+Arrays.toString(a.replaceAll(“[,\\[\]]”,”);
i++;
}

您可以通过调用
.Iterator()
直接将
迭代器
数组列表
一起使用,并将其分配给迭代器对象,对于字符串数组,您可以使用
foreach

        Iterator iterator = arr_list.iterator();
        while(iterator.hasNext()){
           String[] array = (String[]) iterator.next();
           int index = arr_list.indexOf(array);
           System.out.print(index + " : ");
           for(String str : array){
               System.out.print(str);
           }
           System.out.println("");
        }

希望对你有所帮助你能用地图吗?用地图看起来很可行

Map<Integer, ArrayList<String>> 
Map

类似于结构。值到整数的简单转换和传统的遍历将得到您想要的结果。

您希望如何将字符串列表[]和一组int[]???我的错误。更正了。我们可以使用迭代器吗?当然可以,但我选择使用双循环以便轻松打印每个数组的索引。迭代器当然也会这样做,因为它不会将数组打印为以空格分隔的列表。您为什么要附加到
j
而不是简单地赋值?
        Iterator iterator = arr_list.iterator();
        while(iterator.hasNext()){
           String[] array = (String[]) iterator.next();
           int index = arr_list.indexOf(array);
           System.out.print(index + " : ");
           for(String str : array){
               System.out.print(str);
           }
           System.out.println("");
        }
Map<Integer, ArrayList<String>>