패키지 top.dszy.test.java8; 가져올 수 있는 java.util을 *. ; 수입 java.util.stream.Collectors; 공용 클래스 에서 Test1 { 공공 정적 무효 메인 (문자열 []에 args) { 목록 <의 LinkedHashMap <문자열 개체 목록 >> = 새로운 ArrayList를 <> (); 에는 list.add ( 새 의 LinkedHashMap <문자열, 개체> () {{ (넣어 "ID", "A"를 ), (넣어 "세", "13" ), (넣어 "男", "섹스" ); }} ); 명부.의 LinkedHashMap은 <문자열, 개체> () {{ (넣어 "ID", "A"를 ); (넣어 "나이", "14" ); (넣어 "男", "섹스" ); }}); 에는 list.add ( 새 의 LinkedHashMap <문자열, 개체> () {{ (넣어 "ID", "B"를 ), (넣어 "세", "14" ) (넣어 "男", "섹스" ); }} ); 에는 list.add ( 새 의 LinkedHashMap <문자열, 개체> () {{ (넣어 "ID", "C"를 ); (넣어 "세", "14"); (넣어 "男", "섹스" ); }}); 에는 list.add ( 새 의 LinkedHashMap은 <문자열, 개체> () {{ (넣어 "", "ID를" ); (넣어 "세", "14" ), (넣어 "섹스", "男" ); }}) ; 에는 list.add ( 새 의 LinkedHashMap <문자열, 개체> () {{ (넣어 "ID", "C"를 ), (넣어 "세", "14" ), (넣어 "섹스", "男" ); }}); handleRepeatPrimaryKey (목록, "ID" ); 목록 <의 LinkedHashMap <문자열, 객체 >> hasList = 새로운 ArrayList를 <> (); hasList . list.stream = ()의 (X -> x.get ( "ID")를 toString (같음) ( "!"를.. 필터링 ))를 수집 (Collectors.toList ()). 목록 <의 LinkedHashMap <문자열, 객체 >> notHasList = 새로운 ArrayList를 <> (); notHasList . - (.> x.get ( "ID") toString (같음) ( ""X. list.stream = () 필터 ))를 수집 (Collectors.toList ()). 에서 System.out.println (hasList); 에서 System.out.println (notHasList); } 공공 정적 목록 <의 LinkedHashMap <문자열, 객체 >>목록, 문자열 ID) { 목록 <의 LinkedHashMap <문자열, 객체 >> itemList에 = 새로운 ArrayList를 <> (); 위한 (의 LinkedHashMap <문자열 object> LHM리스트) { 경우 (itemList.size () == 0 ) { itemList.add (LHM); } 다른 { 반복자 <의 LinkedHashMap <문자열, 객체 >> = listIterator의 itemList.listIterator (); 동안 (listIterator.hasNext ()) { 경우 (listIterator.next (). 수 (ID)로 .toString (). 등호 (lhm.get (ID)로 .toString ())) { lhm.put (ID, "" } 다른 { ListIterator.add를 (LHM); } } } } 반환 목록; } }
반복 처리의 기본 키는, 아, 나는 요구를 충족 할 수 있습니다 첫 번째 나머지 기본 키가 비어 있습니다 걸릴. 나는 더 나은 방법이 몰라?