簡體   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