[英]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.