자바 리스트 집합 다시 방법

1178 단어 자바
비 즈 니스 논리 가 점점 복잡 해 지 는 현재, 무 거 운 것 은 비 즈 니스 논리 도 많 습 니 다. 다음은 몇 가지 List (문자열) 무 거 운 것 을 소개 합 니 다.
List collect = list.stream().distinct().collect(Collectors.toList());

List (대상), 그 속성 1, 단일 속성 을 중시 합 니 다. 다음은 다 속성 추천: 속도 가 다음 보다 빠 릅 니 다.
List quchong = data.stream().filter(distinctByKey(   ->   .get  ())).distinct()
				.collect(Collectors.toList());

static  Predicate distinctByKey(Function super T, ?> keyExtractor) {
		Map seen = new ConcurrentHashMap<>();
		return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
	}

List (대상), 속성 2 삭제
List unique = data.stream()
				.collect(Collectors.collectingAndThen(
						Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(  ::get  ))),
						ArrayList::new));

List (대상), 속성 2 (다 속성)
List uniques = data.stream().collect(Collectors.collectingAndThen(
				Collectors.toCollection(() -> new TreeSet(
						Comparator.comparing(  ->   .get  () + ";" +   .get  ()))),
				ArrayList::new));

좋은 웹페이지 즐겨찾기