簡體   English   中英

如何使用 java stream 從現有列表中轉換創建的新匹配值列表

[英]how to convert created new list of matched values from existing list using java stream

目前我使用嵌套的 for-each 循環來實現相同的目的。

List<String> valueListToBeFilter = Arrays.asList("8 digit mobile number", "Please enter mobile number.");
List<String> newfoundValueList = new ArrayList<>();

for (String value : valueListToBeFilter) {
    for (WebElement element : _webElementsErrorList) {
        if (element.getText().contains(value))
            newfoundValueList.add(element.getText());
    }
}
newfoundValueList.forEach(System.out::println);

我得到了所需的結果,但是如何使用 stream 來實現相同的結果

最好交換map並在“嵌套” stream 中filter以減少代碼一點點,但通常這是一個小的改進:

List<String> newfoundValueList = valueListToBeFilter
    .stream()
    .flatMap(value -> _webElementsErrorList
        .stream()
        .map(WebElement::getText)
        .filter(elementText -> elementText.contains(value))
    )
    .collect(Collectors.toList());

應該與WebElement -List 的.flatMap和另一個 stream 一起使用,如下所示:

List<String> newfoundValueList = valueListToBeFilter.stream()
    .flatMap(value -> _webElementsErrorList.stream()
        .filter(element -> element.getText().contains(value))
        .map(element -> element.getText()))
    .collect(Collectors.toList());

如何轉換列表<object>至 Map<k, v> 使用 java stream<div id="text_translate"><p> 我想將List&lt;ObjectInList&gt;轉換為Map&lt;K, V&gt;</p><pre> class ObjectInList { List&lt;Long&gt; listWithLong; Map&lt;String, Object&gt; dataMap; // there is 'id' key, and i want to use this id as key in map to be converted }</pre><p> 新的 map 格式如下</p><pre>String type; // this type is value of dataMap. List&lt;Long&gt; contents</pre><p> List&lt;Object&gt;中的每個 Object 都可以有重復的類型</p><p>例如</p><pre>///////// before converted //////////// [ { list: [1,2,3], dataMap: { type: "a", } }, { list: [4,5,6], dataMap: { type: "b", } }, { list: [7,8], dataMap: { type: "a", } }, ] ///////////// after converted ////////// { "a": [1,2,3,7,8], "b": [4,5,6] }</pre></div></k,></object>

[英]How to convert LIst<Object> to Map<K, V> with using java stream

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何使用 java stream 從列表中獲取前 5 個最大值 使用Java流的列表中列表的平均特定值 Java - 根據現有列表從流中獲取新對象的列表 如何使用Stream Java 8將列表中的元素轉換為字符串 如何使用流將列表轉換為帶有索引的地圖 - Java 8? 如何轉換列表<object>至 Map<k, v> 使用 java stream<div id="text_translate"><p> 我想將List&lt;ObjectInList&gt;轉換為Map&lt;K, V&gt;</p><pre> class ObjectInList { List&lt;Long&gt; listWithLong; Map&lt;String, Object&gt; dataMap; // there is 'id' key, and i want to use this id as key in map to be converted }</pre><p> 新的 map 格式如下</p><pre>String type; // this type is value of dataMap. List&lt;Long&gt; contents</pre><p> List&lt;Object&gt;中的每個 Object 都可以有重復的類型</p><p>例如</p><pre>///////// before converted //////////// [ { list: [1,2,3], dataMap: { type: "a", } }, { list: [4,5,6], dataMap: { type: "b", } }, { list: [7,8], dataMap: { type: "a", } }, ] ///////////// after converted ////////// { "a": [1,2,3,7,8], "b": [4,5,6] }</pre></div></k,></object> 使用帶索引的流將Java列表轉換為映射 使用collection -Stream將Java List轉換為對象 如何使用Java 8流過濾List並從值數組開始 如何使用Java Stream API(groupingBy收集器)對列表中的值進行分組?
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM