JAVA는 중복 제거 목록 값 방법 객체

  JAVA가 다른 목록 <사용자>이고, 한리스트의 값에 따른 가중치를 직접, 이러한 목록 <문자열>에서 <정수> 인, 크게 2 가지 경우로 나누어 중복 목록 값의 오브젝트이 , 자바 빈즈 목록은 객체에 저장됩니다, 우리는 목록의 개체 또는 여러 값에 따라 값 무게 비교해야합니다. 방법은 다음과 같습니다

 

A, 목록 <문자열> 목록 <정수> 중복 제거 목표 값.

이 경우, 새로운 특징 스트림이 별개의 방식을 비교적 단순한 JDK1.8되는 과정은 직접적으로 처리 될 수있다.

1      목록 <문자열> = Arrays.asList리스트 1 ( "A", "B", "C", "A", 새로운 문자열 ( "C" ));
2      list1.stream () 별개의 () 대해 forEach (System.out에 ::에 println)..;
(3)  
(4)      에서 <정수> = Arrays.asList리스트 2 (1, 2, 3, 1, 새로운 정수 (2 ));
5      list2.stream () 별개의 () 대해 forEach (System.out에 ::에 println)..;

 

두, 목록 <사용자> 중복 제거 목표 값.

이 후, 직접 비교할 수없는 목록 객체 재 작성 등호와 hashCode 방법 콩 개체, 자동 설정, 다음과 같은 구체적인 예를 배치하여 다시 설정이 필요합니다.

개체 개체 :

1  @Data
 2  @AllArgsConstructor
 3  공용  클래스 사용자 {
 4      개인 문자열 ID;
5      개인 문자열 이름;
6      개인  INT의 시대;
7  
8      공공  부울 등호 (개체 OBJ) {
 9          사용자 U = (사용자) OBJ;
10          리턴 name.equals (u.name);
11      }
 12  
13      공중  INT의 해시 코드 () {
 14          = 문자열의 이름;
15          in.hashCode ();
16      }
 17 }

상기 예를 비교하여 해당 오브젝트와 동일한 동일한 이름, 즉이다.

 

1      목록 <사용자> 여기서 userList = 새로운 ArrayList를 <> ();
2      userList.add ( 새로운 사용자 ( "1", "베드로", 18 ));
3      userList.add (  사용자 ( "2", "스탁", 25 ));
4      userList.add ( 새로운 사용자 ( "3", "베드로", 22 ));
5      
6      세트 <사용자>하여 Userset = 새로운 HashSet의 <> (여기서 userList);
7      목록 <사용자> 목록 = 새로운 ArrayList를 <> (하여 Userset);
8      list.forEach (System.out에 ::에 println);

자동 디엠 퍼시스를 설정하여 목록에 (심지어 경우는 등호와 hashCode 방법 이상 사용) 한 다음 다시 목록에이 될 수 있습니다.

 

추천

출처www.cnblogs.com/pcheng/p/10930944.html