Java 中使用 Java 8 的流獲取 List 中的重復元素


Java 中使用 Java 8 的流獲取 List 中的重復元素

案例如下:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Repetition {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("張三");
        list.add("李四");
        list.add("張三");
        list.add("王五");

        List<String> collect = list.stream().collect(Collectors.toMap(e -> e, e -> 1, (a, b) -> a + b)) //獲得元素出現頻率的 Map,鍵為元素,值為元素出現的次數
                .entrySet().stream() //Set<Entry>轉換為Stream<Entry>
                .filter(entry -> entry.getValue() > 1) //過濾出元素出現次數大於 1 的 entry
                .map(entry -> entry.getKey()) // 獲得 entry 的鍵(重復元素)對應的 Stream
                .collect(Collectors.toList());// 轉化為 List

        System.out.println(collect);
    }
}

執行結果如下:

[張三]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM