Stream系列(七)distinct方法使用
Stream系列(七)distinct方法使用

EmployeeTestCase.java
package com.example.demo;import lombok.Data;
import lombok.ToString;
import lombok.extern.log4j.Log4j2;
import one.util.streamex.StreamEx;
import org.junit.Test;import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.LongStream;
import java.util.stream.Stream;import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;@Log4j2
public class EmployeeTestCase extends BaseTest{@Testpublic void distinct() {//常规实现方式List employeesDis = list.stream().distinct().collect(Collectors.toList());assertEquals(employeesDis.size(),5);//StreamEx 实现方式List employeesDisBySalary2 = StreamEx.of(list).distinct(Employee::getSalary).peek(System.out::println).collect(Collectors.toList());//Stream filter 实现方式List employeesDisBySalary = list.stream().filter(distinctByKey(Employee::getSalary)).collect(Collectors.toList());assertEquals(employeesDisBySalary,employeesDisBySalary2);}private static Predicate distinctByKey(Function super T, ?> keyExtractor) {Map
BaseTest.java
package com.example.demo;import java.util.Arrays;
import java.util.List;public class BaseTest {protected static final List list = Arrays.asList(new Employee(1, "Alex", 1000),new Employee(2, "Michael", 2000),new Employee(3, "Jack", 1500),new Employee(4, "Owen", 1500),new Employee(5, "Denny", 2000));protected static final List> listFlat = Arrays.asList(Arrays.asList(new Employee(1, "Alex", 1000),new Employee(2, "Michael", 2000)),Arrays.asList(new Employee(3, "Jack", 1500),new Employee(4, "Owen", 1500)),Arrays.asList(new Employee(5, "Denny", 2000)));
}
关注公众号,坚持每天3分钟学习
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
