본문 바로가기

Stream

Object List multiple field compare and remove class Product { private String code; private String name; private String category; private long price; } List products = Arrays.asList(); //코드,이름 카테고리 3개의 필드가 중복되는 상품 제거. Collection removes = products .stream() .collecti(toMap( p -> Arrays.asList(p.getCode(),p.getName(),p.getCategory()), Function.identity(),(p1,p2) -> p1)) .values(); 더보기
Java Object Stream group by multiple field and map in map to list java stream 을 사용하여 객체 리스트를 여러개 필드로 그룹핑 후 맵형태로 생성 후 리스트로 출력 해보도록 한다. 원본 리스트를 그룹핑 하여 출력되는 최종 결과는 아래 그림과 같다. List courseList = Arrays.asList( Course.builder() .code("A0001") .subject("Math") .semester("First") .price(10000l) .build(), Course.builder() .code("A0001") .subject("Math") .semester("Second") .price(10000l) .build(), Course.builder() .code("A0005") .subject("OperatingSystem") .semester("S.. 더보기
Java 8 ArrayList sort 아래와 같이 객체 클래스가 존재 한다고 했을때해당 객체를 담고 있는 리스트를 생성 했다고 하자.이때 리스트에서 해당 객체들을 시간순으로 (descending) 하려고 한다.java8 에서 제공하는 stream 을 사용하여 간단하게 정렬 하는 방법을 사용해봄@Datapublic class MyClass{private Date time;private message; }List resultList = new ArrayList();resultList.stream().sorted(Comparator.comparing(StatisticsDTO::getTime).reversed()).collect(Collectors.toList()); 더보기