자바 8 여러 list 대상 은 lambda 로 차 집합 작업 을 합 니 다.

업무 장면:동기 화 인 터 페 이 스 를 호출 하여 현재 유효한 계 정 을 가 져 옵 니 다.데이터 베 이 스 는 일부 계 정 정보 가 존재 하기 때문에 동기 화 인터페이스 에 로 컬 계 정 이 존재 하 는 지 선별 해 야 합 니 다.
인터페이스 에서 가 져 온 데이터 집합 호출
List list = response.getData().getItems();
로 컬 조회 계 정 집합
List towList = accountRepository.findAll();
필터 차 집합 코드
List distinctByUniqueList = list.stream()

 .filter(item -> !towList.stream()

 .map(e -> e.getOwnerId())

 .collect(Collectors.toList())

 .contains(item.getOwnerId()))

 .collect(Collectors.toList());
이렇게 처리 해 야 할 데 이 터 를 가 져 옵 니 다.
추가 지식:자바 8 에서 Lambda 표현 식 으로 같은 속성 을 가 진 여러 개체 집합
실제 업무 처리 에서 우 리 는 같은 집합 내 같은 속성 대상 을 합병 해 야 하 는 상황 을 자주 만 날 수 있다.예 를 들 어 같은 사용자 가 짧 은 시간 에 내 린 주문 서 는 각 주문 의 금액 을 하나의 총 금액 으로 합 쳐 야 한다.
그러면 lambda 표현 식 과 HashMao 로 이 상황 을 어떻게 처리 합 니까?본 고 는 Student 의 name,age,score 를 예 로 들 어 하나의 List 집합 에 여러 개의 Student 대상 이 있 는데 name 과 age 의 같은 속성 치 를 가 진 Student 대상 에 대해 score 값 을 더 하고 하나 로 합 쳐 서로 다른 처리 방법 을 소개 한다.
1.lambda 표현 식 으로:우선,우 리 는 Student 클래스 를 새로 만 듭 니 다.

그리고 Demo 에 List 집합 을 새로 만들어 Student 대상 을 저장 하고 lambda 표현 식 으로 처리 합 니 다.그 중에서 parallelStream 은 병렬 로 실행 되 는 흐름 입 니 다.기본 ForkJoinPool 을 통 해 다 중 스 레 드 작업 의 속 도 를 높 입 니 다.결과 에서 볼 수 있 듯 이 name 과 age 속성 치가 같은 장 3,score 값 이 추가 되 었 고 새로운 대상 으로 합 쳐 졌 습 니 다.

2.HashMap 통합 집합:보다 직관 적 인 전 시 를 위해 우 리 는 새로운 종 류 를 다시 만 들 었 고 hashCode 와 equal 방법 을 다시 썼 다.

아 이 디 어 는 HashMap 의 key 가 같 지 않 고 같은 key 를 제거 하여 새로운 value 값 을 얻 는 것 입 니 다.실행 결 과 는 다음 과 같 습 니 다.같은 name 과 age 의 student 대상 에 score 를 추가 하고 새로운 대상 을 얻 을 수 있 습 니 다.

비교 해 보면 lambda 표현 식 코드 의 양 이 적 고 읽 기 쉬 우 며 관심 이 있 는 것 은 자바 8 의 다른 특성 을 계속 연구 할 수 있 습 니 다.
이상 의 자바 8 여 개의 list 대상 이 lambda 로 차 집합 을 구 하 는 작업 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기