자바 람다 필터의 foreach를 사용하는 간단한
시간 쿼리 조건에 의해 컬렉션에서 자바 목록, 자주 for 루프를 사용하여 생각합니다.
자바 8 람다의 도입 이후, 루프의 사용을 단순화합니다.
람다는 필터의 foreach와의 단순한 사용을 나타낸다.
1, 사용자 정의 클래스의 영웅
/ ** * 2020년 3월 8일에 기적 루나 만든 * / 공용 클래스 영웅 { 개인 문자열 이름; 개인 문자열 국가; 공공 영웅 (문자열 이름, 문자열 국가) { 이 .name을 = 이름; 이 .country = 국가; } 공공 문자열 getName () { 반환 이름; } 공공 무효 에서는 setName (문자열 이름) { 이 .name을 = 이름; } 공공 문자열에는 getCountry () { 반환 국가; } 공공 무효 setCountry (문자열 국가) { 이 .country = 국가; } @Override 공공 문자열 toString () { 반환 "영웅 {"+ "이름 = '"+ 이름 +'\ ''+ ', 국가 =' "+ 국가 + '\' '+ '} ' ; } }
2 Foreach 루프
수입 인 java.util.ArrayList; 수입 은 java.util.List; / ** * 2020년 3월 8일 기적 루나 만든 * / 공용 클래스 LambdaForeachDemo { 공공 정적 무효 메인 (문자열 []에 args) { 목록 <영웅> heroList = 새로운 ArrayList를 <> (); 목록은 <영웅> resultList는 = 새로운 ArrayList를을 <> (); 영웅 liubei는 = 새로운 영웅 ( "刘备", "蜀国" ); 영웅 GUANYU는 = 새로운 영웅 ( "关羽", "蜀国" );새로운 새로운 영웅 ( "장", "슈" ) 영웅 순세 = 새로운 새로운 영웅 ( "손책", "우" ) heroList.add (liubei) heroList.add (GUANYU) heroList.add (Zhangfei) ; heroList.add (순세); // 쿼리하지 영웅 우 heroList.forEach (영웅 -> { IF ( "우!" .equals (hero.getCountry ())) { resultList.add (영웅); } }); // 결과 집합 인쇄 resultList.forEach (영웅 -> 에서 System.out.println (hero.toString ())); } }
3 필터 필터
수입 인 java.util.ArrayList; 수입 은 java.util.List; 수입 java.util.stream.Collectors; / ** * 2020년 3월 8일 기적 루나 만든 * / 공용 클래스 LambdaFilterDemo { 공공 정적 무효 메인 (문자열 []에 args) { 목록 <영웅> heroList = 새로운 ArrayList를 <> (); 목록은 <영웅> resultList는 = 새로운 ArrayList를을 <> (); 영웅 liubei는 = 새로운 영웅 ( "刘备", "蜀国" ); 영웅 GUANYU = 새로운 영웅 ( "关羽", "蜀国" Zhangfei 영웅 = 새로운 새로운 영웅 ( "장", "슈" ) 영웅 순세 = 새로운 새로운 영웅 ( "손책", "우" ) heroList.add (liubei) heroList.add (GUANYU) heroList.add (Zhangfei) heroList.add (순세); // 쿼리하지 영웅 우 resultList = heroList.stream () (영웅 .filter ! -> "우" .equals (hero.getCountry ())) .collect ( Collectors.toList ()); // 결과를 인쇄 설정 resultList.forEach (영웅 -> 에서 System.out.println (hero.toString ())); } }
다음도 4를 참조하면, 결과는 :
영웅 {이름 = '베이', 국가 = '슈' } 영웅 {이름 = '관우', 국가 = '슈' } 영웅 {이름 = '장'국가 = '슈'}