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

时间:2017-05-24 12:49:20

标签: java arrays arraylist

所以我有一个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);

我需要以这种格式显示它(这里每行的起始编号是节点索引)

0 : 4 5 3 2
1 : 7 1 0 9
2 : 8 4 3 1

7 个答案:

答案 0 :(得分:1)

使用双循环,第一个循环迭代ArrayList,第二个循环遍历每个数组。另外,您的数组应该是String数组,否则什么都不会有效。

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();
}

这就是你要找的东西吗?

答案 1 :(得分:1)

定义可以循环的列表列表:

for (int i = 0; i < l.size(); i++) {
    System.out.println(i + " : " + String.join(" ", l.get(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"));

IntStream.range(0, l.size()).forEach(x -> System.out.println(x + " : " + String.join(" ", l.get(x))));

修改

因为很快或后来人们将需要使用相同的java8流功能:

var date = new Date(new Date().setHours(0, 0, 0, 0));
console.log(date);
var currentDate = new Date();
console.log(currentDate);

if (date.getTime() === new Date(currentDate.setHours(0, 0, 0, 0)).getTime() && currentDate.getTime() > (new Date(currentDate.setHours(11,30,0,0)).getTime())) {
            console.log("It works!!!");
}
else{
console.log("That didn't work as expected :(");
}

console.log(date.getTime() === new Date(currentDate.setHours(0, 0, 0, 0)).getTime());

console.log(currentDate.getTime() > (new Date(currentDate.setHours(11,30,0,0)).getTime()));

答案 2 :(得分:0)

您可以使用 foreach 循环迭代File中的元素,然后我们可以写:

ArrayList

答案 3 :(得分:0)

public static void main(String[] args){

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

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

答案 4 :(得分:0)

我希望你已经得到了答案,另外

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++;
        }

答案 5 :(得分:0)

您可以通过调用Iterator直接将ArrayList.iterator()一起使用并将其分配给iterator对象,对于字符串数组,您可以使用foreach:< / p>

        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("");
        }

希望有所帮助

答案 6 :(得分:0)

你能用地图吗?

似乎非常可行
Map<Integer, ArrayList<String>> 
像结构一样。将值简单转换为整数和传统遍历将获得您想要的结果。