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