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 방법 이상 사용) 한 다음 다시 목록에이 될 수 있습니다.