繁体   English   中英

如何检查包含ArrayList的ArrayList中是否存在值

[英]How to check if a value exists in an ArrayList that contains an ArrayList

因此,我有一个包含另一个ArrayList的ArrayList,并且我试图查看内部Arraylist是否包含要查找的值。 如果是这样,我想返回该数组所在的索引。

 List<List<String>> messages = parseMessages(extract.getPath());

        String needle = "test";
        messages.stream()  // Stream<List<String>>
                .filter(message -> message.contains(needle))
                .flatMap(List::stream)  // Stream<String>
                .forEach(System.out::println);

所以我在捕获ArrayList中的ArrayList之后编写了这段代码。

我尝试访问的数组是“ Messages”,其中包含2个其他arraylist。

我想使用contains方法检查内部arraylist是否包含一个值并返回该arrayList的索引。

谢谢

尝试这个

messages.stream()  
        .filter(message -> message.contains(needle))
        .map(message -> message.indexOf(needle))
        .forEach(System.out::println);

map阶段返回值的索引。 即使找到了包含needle匹配内部列表,此操作也将继续用于其他列表。 要在第一个比赛之后停止,可以使用findFirst

 messages.stream()
        .filter(message -> message.contains(needle))
        .map(message -> message.indexOf(needle))
        .findFirst()
        .ifPresent(System.out::println);

如果要获取外部列表的索引,

IntStream.range(0, messages.size())
        .filter(index -> messages.get(index).contains(needle))
        .forEach(System.out::println);

同样,要在一场比赛后停止,

IntStream.range(0, messages.size())
        .filter(index -> messages.get(index).contains(needle))
        .findFirst()
        .ifPresent(System.out::println);

暂无
暂无

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

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