繁体   English   中英

如何在 java 的嵌套列表中获取每个列表的第一个和第二个元素

[英]How to get first and second element of a each list in a nested list in java

现在我在 java 中有一个 Arraylist。 当我打电话

myarraylist.get(0)
myarraylist.get(1)
myarraylist.get(2)

[0, 5, 10, 16]
[24, 29, 30, 35, 41, 45, 50]
[0, 6, 41, 45, 58]

都是不同的列表。 我需要做的是获取每个列表的第一个和第二个元素,并将其放入一个列表中,如下所示:

[0,5]
[24,29]
[0,6]

我尝试了不同的 for 循环,似乎在 python 中有一种简单的方法可以做到这一点,但在 java 中没有。

List<Integer> sublist = myarraylist.subList(0, 2);

对于List#subList(int fromIndex, int toIndex)toIndex是独占的。 因此,要获取前两个元素(索引 0 和 1), toIndex值必须为 2。

尝试阅读有关 Java 8 Stream API 的信息,具体来说:

这应该可以帮助您实现所需的目标。

  1. Map 通过嵌套列表。
  2. 创建每个嵌套列表的子列表。
  3. 将 stream 收集回新列表。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

class Scratch {
    public static void main(String[] args) {
       List<List<Integer>> myArrayList = new ArrayList<>();
       myArrayList.add(Arrays.asList(0, 5, 10, 16));
       myArrayList.add(Arrays.asList(24, 29, 30, 35, 41, 45, 50));
       myArrayList.add(Arrays.asList(0, 6, 41, 45, 58));

        System.out.println(myArrayList.stream().map(l -> l.subList(0, 2)).collect(Collectors.toList()));
        // [[0, 5], [24, 29], [0, 6]]
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM