如何使用Java 8流迭代List <int []>?

Kar*_*ran 6 java java-8 java-stream

我有

List<int[]> allNumList = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

我正在迭代allNumList并匹配下面代码中的一个条件.

for (int[] arr : allNumList) {
    for (int i : arr) {
        if (i == numb) {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想用Java 8做上面的代码.

Tom*_*ski 19

boolean noMatch = allNumList.stream()
    .flatMapToInt(Arrays::stream)
    .noneMatch(i -> i == numb);
Run Code Online (Sandbox Code Playgroud)

  • @Nikolas,因为OP甚至没有显示出他们自己做的最轻微的尝试,甚至有可能OP不知道`stream()`的作用.解释每个操作甚至背后的概念对Stackoverflow来说太过分了.这就是为什么在过去,这样的问题在没有答案的情况下被关闭了.但是这些是新的一天,我们应该欢迎并且评论"你读过手册吗?"或"你尝试了什么?"被认为是不礼貌的.所以最好的答案是希望代码丢弃,OP将使用指针进行研究*现在*. (7认同)
  • @TomaszLinkowski,当我在Stackoverflow上新的时候,我对投票的分配感到困惑.涉及太多非技术因素,因此投票与帖子的实际质量不成比例,但是,当你有数千个答案或更多时,它们在更大范围内变得更加合理. (5认同)
  • 我没有找到这个答案有用,因为没有包含说明.只是代码不是答案.为什么`flatMapToInt`?为什么`noneMatch`?OP显然对它们一无所知. (3认同)
  • @Nikolas在实际开发中,代码将位于一个方法中,其名称会说明它的作用:)不幸的是,OP没有提供这样的上下文.但我理解你的意思,我试着遵循这些指导方针来解决那些不那么琐碎的问题. (2认同)