자바 에 추 가 된 Predicate 작업 집합

3842 단어 자바자바 집합
자바 8 은 Collection 집합 을 위해 removelf (Predicate filter) 방법 을 추 가 했 습 니 다. 이 방법 은 filter 조건 에 맞 는 요 소 를 대량으로 삭제 합 니 다.이 방법 은 Predicate (술어) 대상 을 매개 변수 로 해 야 하 며, Predicate 도 함수 식 인터페이스 이기 때문에 Lambda 표현 식 을 사용 할 수 있 습 니 다.다음 프로그램 은 Predicate 를 사용 하여 집합 을 걸 러 내 는 것 을 시범 하 였 다.
package base1;
import java.util.*;
import java.util.function.Predicate;
public class test {
    public static void main(String[] args){
        Collection books = new HashSet();
        books.add("   java EE      ");
        books.add("  java  ");
        books.add("  ios  ");
        books.add("  Ajax  ");
        books.add("  Android  ");
        books.removeIf(ele->((String)ele).length()<10);
        System.out.println(books);
    }

위의 프로그램 은 Collection 집합 removelf (Predicate filter) 방법 을 호출 하여 집합 에서 조건 에 맞 는 요 소 를 대량으로 삭제 합 니 다. 프로그램 은 lambda 표현 식 을 필터 조건 으로 들 어 왔 습 니 다. 모든 길이 가 10 이하 인 문자열 요 소 는 삭 제 됩 니 다.실행 코드 를 컴 파일 하면 다음 출력 을 볼 수 있 습 니 다.
[   java EE      ,   Android  ]

다음 절 차 는 Predicate 가 집합 연산 을 간소화 하 는 것 을 시범 한다.
package base1;
import java.util.*;
import java.util.function.Predicate;
public class test {
    public static void main(String[] args){
        Collection books = new HashSet();
        books.add("   java EE      ");
        books.add("  java  ");
        books.add("  ios  ");
        books.add("  Ajax  ");
        books.add("  Android  ");
        System.out.println(calAll(books,ele->((String)ele).contains("  ")));
        System.out.println(calAll(books,ele->((String)ele).contains("java")));
        System.out.println(calAll(books,ele->((String)ele).length() > 10));
    }

    private static int calAll(Collection books, Predicate p) {
        // TODO Auto-generated method stub
        int total = 0;
        for(Object obj : books){
            if(p.test(obj)){
                total++;
            }
        }
        return total;
    }

}

실행 결과:
4
2
2

이 프로그램 은 다음 과 같은 세 가지 통계 적 수요 가 있다.
  • 책 제목 에 나타 난 '미 친' 문자열 의 도서 수량 을 통계 한다.
  • 책 이름 에 나타 난 '자바' 문자열 의 도서 수량 을 통계 합 니 다.
  • 책 제목 의 길이 가 10 보다 큰 도서 수량 을 통계 한다.
  • 좋은 웹페이지 즐겨찾기