Commons 컬렉션 작업 및 큐 확장

2421 단어
집합 조작
다음 컬렉션 작업은 Collection으로 반환됩니다.
  • CollectionUtils 통합union(용기1, 용기2);
  • CollectionUtils 교차intersection(용기1, 용기2);또는retainAll() 사용법이 같음
  • 차집합 CollectionUtils.subtract(용기1, 용기2);

  • 구체적인 절차는 매우 간단하기 때문에 예시 절차를 놓지 않겠다.주의해야 할 것은 되돌아오는 것이 모두 Collection, 즉 변형되지 않으면 기본적인 조작만 사용할 수 있다는 것이다.
    대기열 확장
  • 순환 대기열이 꽉 찼을 때 원소를 추가하면 자동으로 선진적인 원소가 튀어나와 뒤에 추가됩니다.CircularFifoQueue 클래스 사용
  • public static void circularFifoQueue(){
            //           
            CircularFifoQueue cirque=new CircularFifoQueue<>(2);
            cirque.add("a");
            cirque.add("b");
            cirque.add("c");
            for(String temp:cirque)
                System.out.println(temp);
        }
        :
    b
    c
    
  • 읽기 전용 대기열과javaAPI 중 하나로 용기를 포장합니다.단지 하나의 용기의 스냅샷이 생겼을 뿐, 이 스냅샷을 조작할 수 없다.그러나 원 용기에 대한 조작은 가능하고 스냅샷도 이에 따라 달라진다.UnmodifiableQueue를 사용합니다.unmodifiableQueue(대기열);포장
  • public static void readOnlyQueue(){
            Queue que=new LinkedList<>();
            que.add("a");
            que.add("b");
            que.add("c");
            que.add("d");
            
            Queue readonlyqueue=UnmodifiableQueue.unmodifiableQueue(que);
            //readonlyqueue.add("f");//java.lang.UnsupportedOperationException
            for(String temp:readonlyqueue){
                System.out.print(temp+"\t");
            }
            System.out.println();
            //     
            que.add("f");
            //     
            for(String temp:readonlyqueue){
                System.out.print(temp+"\t");
            }
        }
        :
    a   b   c   d   
    a   b   c   d   f
    
  • 단언 대기열은 단언을 이용하여 대기열에 가입하는 요소의 종류를PredicatedQueue로 제한한다.predicatedQueue(대기열, 단언);포장
  • public static void predicatedqueue(){
            Queue que=new LinkedList<>();
            //    ,      a    
            Predicate predicate=new Predicate() {
    
                public boolean evaluate(String str) {
                    char c;
                    for(int i=0;i predicatedqueue=PredicatedQueue.predicatedQueue(que, predicate);
            
            predicatedqueue.add("sex");
            predicatedqueue.add("along");//java.lang.IllegalArgumentException
        }
    

    좋은 웹페이지 즐겨찾기