依賴的jar包
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
LamdaDuplicate.java
package com.example.demo.util;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class LamdaDuplicate {
public static void main(String[] args) {
System.out.println("獲取list集合中重複的元素:");
test1();
System.out.println("\n計算集合中平方,並且過濾重複的數字:");
test2();
}
public static void test1() {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("1");
list.add("2");
list.add("2");
list.add("3");
List<String> repeatList = list.stream()
.collect(Collectors.toMap(e -> e, e -> 1, (a,b) -> a + b))
.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.map(entry -> entry.getKey())
.collect(Collectors.toList());
System.out.println("逗號分隔:" + StringUtils.join(repeatList.toArray(), ","));
}
public static void test2() {
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
List<Integer> squaresList = numbers.stream().map(i -> i*i)
.distinct()
.collect(Collectors.toList());
squaresList.stream().forEach(System.out::println);
}
}
輸出
獲取list集合中重複的元素:
逗號分隔:1,2
計算集合中平方,並且過濾重複的數字:
9
4
49
25