Apache Commons 컬렉션-빠른 가이드

Commons Collections는 Java Collections Framework를 강화합니다. 컬렉션을 쉽게 처리 할 수 ​​있도록 몇 가지 기능을 제공합니다. 많은 새로운 인터페이스, 구현 및 유틸리티를 제공합니다.

Commons Collections의 주요 기능은 다음과 같습니다.

  • Bag − Bag 인터페이스는 각 개체의 여러 복사본이있는 컬렉션을 단순화합니다.

  • BidiMap − BidiMap 인터페이스는 키를 사용하여 값을 조회하거나 값을 사용하여 키를 조회하는 데 사용할 수있는 양방향 맵을 제공합니다.

  • MapIterator − MapIterator 인터페이스는 맵에 대한 간단하고 쉬운 반복을 제공합니다.

  • Transforming Decorators − 데코레이터 변형은 컬렉션의 모든 객체를 컬렉션에 추가 할 때와 같이 변경할 수 있습니다.

  • Composite Collections − 종합 컬렉션이 사용되며, 여러 컬렉션을 균일하게 처리해야합니다.

  • Ordered Map − 정렬 된 맵은 요소가 추가되는 순서를 유지합니다.

  • Ordered Set − 정렬 된 집합은 요소가 추가되는 순서를 유지합니다.

  • Reference map − 참조 맵을 사용하면 키 / 값을 긴밀하게 제어하여 가비지 수집 할 수 있습니다.

  • Comparator implementations − 많은 Comparator 구현이 가능합니다.

  • Iterator implementations − 많은 Iterator 구현을 사용할 수 있습니다.

  • Adapter Classes − 어댑터 클래스를 사용하여 배열 및 열거를 컬렉션으로 변환 할 수 있습니다.

  • Utilities− 공용체, 교차점과 같은 컬렉션의 일반적인 집합 이론 속성을 테스트하거나 생성하는 데 유틸리티를 사용할 수 있습니다. 폐쇄를 지원합니다.

지역 환경 설정

여전히 Java 프로그래밍 언어에 대한 환경을 설정하려는 경우이 섹션에서는 시스템에 Java를 다운로드하고 설정하는 방법을 안내합니다. 환경을 설정하려면 아래 단계를 따르십시오.

Java SE는 링크에서 무료로 사용할 수 있습니다. https://www.oracle.com/technetwork/java/archive-139210.html 따라서 운영 체제에 따라 버전을 다운로드합니다.

지침에 따라 Java를 다운로드하고 .exe를 실행하여 컴퓨터에 Java를 설치합니다. 시스템에 Java를 설치했으면 올바른 설치 디렉토리를 가리 키도록 환경 변수를 설정해야합니다.

Windows 2000 / XP 용 경로 설정

Java를 설치했다고 가정합니다. c:\Program Files\java\jdk directory

  • '내 컴퓨터'를 마우스 오른쪽 버튼으로 클릭하고 '속성'을 선택합니다.

  • '고급'탭에서 '환경 변수'버튼을 클릭합니다.

  • 이제 Java 실행 파일의 경로도 포함하도록 'Path'변수를 변경하십시오. 예, 경로가 현재 다음으로 설정된 경우'C:\WINDOWS\SYSTEM32', 읽을 경로를 변경하십시오. 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Windows 95 / 98 / ME 용 경로 설정

Java를 설치했다고 가정합니다. c:\Program Files\java\jdk directory.

  • 'C : \ autoexec.bat'파일을 편집하고 끝에 다음 줄을 추가합니다. 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'

Linux, UNIX, Solaris, FreeBSD에 대한 경로 설정

환경 변수 PATH는 Java 바이너리가 설치된 위치를 가리 키도록 설정되어야합니다. 이 작업을 수행하는 데 문제가 있으면 쉘 문서를 참조하십시오.

예를 들어, bash를 셸로 사용하는 경우 '.bashrc: export PATH=/path/to/java:$PATH'

인기있는 Java 편집자

Java 프로그램을 작성하려면 텍스트 편집기가 필요합니다. 시중에는 정교한 IDE가 많이 있습니다. 그러나 지금은 다음 중 하나를 고려할 수 있습니다.

  • Notepad − Windows 컴퓨터에서는 메모장 (이 자습서에 권장 됨), TextPad와 같은 간단한 텍스트 편집기를 사용할 수 있습니다.

  • Netbeans − 오픈 소스이며 무료 인 Java IDE입니다. https://netbeans.org.

  • Eclipse − 또한 Eclipse 오픈 소스 커뮤니티에서 개발 한 Java IDE이며 다음에서 다운로드 할 수 있습니다. https://www.eclipse.org/.

공통 컬렉션 아카이브 다운로드

commons-collections4-4.1-bin.zip에서 최신 버전의 Apache Common Collections jar 파일을 다운로드합니다. 이 튜토리얼을 작성하는 시점에 우리는commons-collections4-4.1-bin.zip 그리고 그것을 복사 C:\>Apache folder.

OS 아카이브 이름
윈도우 commons-collections4-4.1-bin.zip
리눅스 commons-collections4-4.1-bin.tar.gz
commons-collections4-4.1-bin.tar.gz

Apache 공통 컬렉션 환경 설정

설정 APACHE_HOMEApache jar가 시스템에 저장된 기본 디렉토리 위치를 가리키는 환경 변수. 다음과 같이 다양한 운영 체제의 Apache 폴더에서 commons-collections4-4.1-bin.zip을 추출했다고 가정합니다.

OS 아카이브 이름
윈도우 환경 변수 APACHE_HOME을 C : \ Apache로 설정합니다.
리눅스 export APACHE_HOME = / usr / local / Apache
export APACHE_HOME = / Library / Apache

CLASSPATH 변수 설정

설정 CLASSPATHCommon Collections jar 위치를 가리키는 환경 변수. 다음과 같이 다양한 운영 체제의 Apache 폴더에 commons-collections4-4.1-bin.zip을 저장했다고 가정합니다.

OS 산출
윈도우 환경 변수 CLASSPATH를 % CLASSPATH %; % APACHE_HOME % \ commons-collections4-4.1-bin.jar;.;
리눅스 export CLASSPATH = $ CLASSPATH : $ APACHE_HOME / commons-collections4-4.1-bin.jar :.
export CLASSPATH = $ CLASSPATH : $ APACHE_HOME / commons-collections4-4.1-bin.jar :.

백을 지원하기 위해 새로운 인터페이스가 추가되었습니다. Bag은 개체가 컬렉션에 나타나는 횟수를 계산하는 컬렉션을 정의합니다. 예를 들어 Bag에 {a, a, b, c}가 포함 된 경우 getCount ( "a")는 2를 반환하고 uniqueSet ()는 고유 한 값을 반환합니다.

인터페이스 선언

다음은 org.apache.commons.collections4.Bag <E> 인터페이스에 대한 선언입니다.

public interface Bag<E>
   extends Collection<E>

행동 양식

가방 추론 방법은 다음과 같습니다.

Sr. 아니. 방법 및 설명
1

boolean add(E object)

(위반) 지정된 개체의 복사본 하나를 Bag에 추가합니다.

2

boolean add(E object, int nCopies)

지정된 개체의 nCopies 복사본을 Bag에 추가합니다.

boolean containsAll(Collection<?> coll)

(위반) 가방에 카디널리티를 고려하여 지정된 컬렉션의 모든 요소가 포함 된 경우 true를 반환합니다.

4

int getCount(Object object)

현재 bag에있는 지정된 객체의 발생 횟수 (카디널리티)를 반환합니다.

5

Iterator<E> iterator()

카디널리티로 인한 복사본을 포함하여 전체 구성원 집합에 대한 Iterator를 반환합니다.

6

boolean remove(Object object)

(위반) 가방에서 주어진 개체의 모든 발생을 제거합니다.

7

boolean remove(Object object, int nCopies)

Bag에서 지정된 개체의 nCopies 복사본을 제거합니다.

8

boolean removeAll(Collection<?> coll)

(위반) 카디널리티를 고려하여 주어진 컬렉션에 표시된 모든 요소를 ​​제거합니다.

9

boolean retainAll(Collection<?> coll)

(위반) 카디널리티를 고려하여 주어진 컬렉션에없는 가방의 구성원을 제거합니다.

10

int size()

모든 유형의 가방에있는 총 항목 수를 반환합니다.

11

Set<E> uniqueSet()

Bag의 고유 요소 집합을 반환합니다.

상속 된 메서드

이 인터페이스는 다음 인터페이스에서 메소드를 상속합니다.

  • java.util.Collection

백 인터페이스의 예

BagTester.java의 예는 다음과 같습니다.

import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;
public class BagTester {
   public static void main(String[] args) {
      Bag<String> bag = new HashBag<>();
      //add "a" two times to the bag.
      bag.add("a" , 2);
      //add "b" one time to the bag.
      bag.add("b");
      //add "c" one time to the bag.
      bag.add("c");
      //add "d" three times to the bag.
      bag.add("d",3
      //get the count of "d" present in bag.
      System.out.println("d is present " + bag.getCount("d") + " times.");
      System.out.println("bag: " +bag);
      //get the set of unique values from the bag
      System.out.println("Unique Set: " +bag.uniqueSet());
      //remove 2 occurrences of "d" from the bag
      bag.remove("d",2);
      System.out.println("2 occurences of d removed from bag: " +bag);
      System.out.println("d is present " + bag.getCount("d") + " times.");
      System.out.println("bag: " +bag);
      System.out.println("Unique Set: " +bag.uniqueSet());
   }
}

산출

다음 출력이 표시됩니다.

d is present 3 times.
bag: [2:a,1:b,1:c,3:d]
Unique Set: [a, b, c, d]
2 occurences of d removed from bag: [2:a,1:b,1:c,1:d]
d is present 1 times.
bag: [2:a,1:b,1:c,1:d]
Unique Set: [a, b, c, d]

양방향 맵을 지원하기 위해 새로운 인터페이스가 추가되었습니다. 양방향 맵을 사용하면 값을 사용하여 키를 조회 할 수 있으며 키를 사용하여 값을 쉽게 조회 할 수 있습니다.

인터페이스 선언

다음은에 대한 선언입니다. org.apache.commons.collections4.BidiMap<K,V> 인터페이스-

public interface BidiMap<K,V>
   extends IterableMap<K,V>

행동 양식

BidiMap 인터페이스의 방법은 다음과 같습니다.

Sr. 아니. 방법 및 설명
1

K getKey(Object value)

현재 지정된 값에 매핑 된 키를 가져옵니다.

2

BidiMap<V,K> inverseBidiMap()

키와 값이 반전 된이 맵의보기를 가져옵니다.

V put(K key, V value)

키-값 쌍을 맵에 넣고 이전 쌍을 대체합니다.

4

K removeValue(Object value)

현재 지정된 값에 매핑 된 키-값 쌍을 제거합니다 (선택적 작업).

5

Set<V> values()

이 맵에 포함 된 값의 세트보기를 리턴합니다.

상속 된 메서드

이 인터페이스는 다음 인터페이스에서 메소드를 상속합니다.

  • org.apache.commons.collections4.Get

  • org.apache.commons.collections4.IterableGet

  • org.apache.commons.collections4.Put

  • java.util.Map

BidiMap 인터페이스의 예

BidiMapTester.java의 예는 다음과 같습니다.

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.TreeBidiMap;
public class BidiMapTester {
   public static void main(String[] args) {
      BidiMap<String, String> bidi = new TreeBidiMap<>();
      bidi.put("One", "1");
      bidi.put("Two", "2");
      bidi.put("Three", "3");
      System.out.println(bidi.get("One"));
      System.out.println(bidi.getKey("1"));
      System.out.println("Original Map: " + bidi);
      bidi.removeValue("1");
      System.out.println("Modified Map: " + bidi);
      BidiMap<String, String> inversedMap = bidi.inverseBidiMap();
      System.out.println("Inversed Map: " + inversedMap);
   }
}

산출

코드를 실행하면 다음과 같은 출력이 표시됩니다.

1
One
Original Map: {One=1, Three=3, Two=2}
Modified Map: {Three=3, Two=2}
Inversed Map: {2=Two, 3=Three}

JDK Map 인터페이스는 EntrySet 또는 KeySet 객체에 대해 반복이 수행되므로 반복하기가 매우 어렵습니다. MapIterator는 Map에 대한 간단한 반복을 제공합니다. 다음 예제는 동일하게 설명합니다.

MapIterator 인터페이스의 예

MapIteratorTester.java의 예는 다음과 같습니다.

import org.apache.commons.collections4.IterableMap;
import org.apache.commons.collections4.MapIterator;
import org.apache.commons.collections4.map.HashedMap;
public class MapIteratorTester {
   public static void main(String[] args) {
      IterableMap<String, String> map = new HashedMap<>();
      map.put("1", "One");
      map.put("2", "Two");
      map.put("3", "Three");
      map.put("4", "Four");
      map.put("5", "Five");
      MapIterator<String, String> iterator = map.mapIterator();
      while (iterator.hasNext()) {
         Object key = iterator.next();
         Object value = iterator.getValue();
         System.out.println("key: " + key);
         System.out.println("Value: " + value);
         iterator.setValue(value + "_");
      }
      System.out.println(map);
   }
}

산출

출력은 다음과 같습니다.

key: 3
Value: Three
key: 5
Value: Five
key: 2
Value: Two
key: 4
Value: Four
key: 1
Value: One
{3=Three_, 5=Five_, 2=Two_, 4=Four_, 1=One_}

OrderedMap은 요소가 추가 된 순서를 유지하기위한지도 용 새 인터페이스입니다. LinkedMap 및 ListOrderedMap은 사용 가능한 두 가지 구현입니다. 이 인터페이스는 Map의 반복자를 지원하며 Map에서 앞뒤로 양방향 반복을 허용합니다. 다음 예제는 동일하게 설명합니다.

MapIterator 인터페이스의 예

OrderedMapTester.java의 예는 다음과 같습니다.

import org.apache.commons.collections4.OrderedMap;
import org.apache.commons.collections4.map.LinkedMap;
public class OrderedMapTester {
   public static void main(String[] args) {
      OrderedMap<String, String> map = new LinkedMap<String, String>();
      map.put("One", "1");
      map.put("Two", "2");
      map.put("Three", "3");
      System.out.println(map.firstKey());
      System.out.println(map.nextKey("One"));
      System.out.println(map.nextKey("Two"));
   }
}

산출

결과는 다음과 같습니다.

One
Two
Three

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

Not Null 요소 확인

CollectionUtils의 addIgnoreNull () 메서드를 사용하여 null이 아닌 값만 컬렉션에 추가되도록 할 수 있습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.addIgnoreNull() 방법-

public static <T> boolean addIgnoreNull(Collection<T> collection, T object)

매개 변수

  • collection − 추가 할 컬렉션은 null이 아니어야합니다.

  • object − 추가 할 개체. null 인 경우 추가되지 않습니다.

반환 값

컬렉션이 변경된 경우 True입니다.

예외

  • NullPointerException − 컬렉션이 null 인 경우.

다음 예는 org.apache.commons.collections4.CollectionUtils.addIgnoreNull()방법. null 값과 null이 아닌 샘플 값을 추가하려고합니다.

import java.util.LinkedList;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = new LinkedList<String>();
      CollectionUtils.addIgnoreNull(list, null);
      CollectionUtils.addIgnoreNull(list, "a");
      System.out.println(list);
      if(list.contains(null)) {
         System.out.println("Null value is present");
      } else {
         System.out.println("Null value is not present");
      }
   }
}

산출

출력은 아래에 언급되어 있습니다.

[a]
Null value is not present

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

두 개의 정렬 된 목록 병합

CollectionUtils의 collate () 메소드를 사용하여 이미 정렬 된 두 목록을 병합 할 수 있습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.collate() 방법-

public static <O extends Comparable<? super O>> List<O>
   collate(Iterable<? extends O> a, Iterable<? extends O> b)

매개 변수

  • a − 첫 번째 컬렉션은 null이 아니어야합니다.

  • b − 두 번째 컬렉션은 null이 아니어야합니다.

반환 값

컬렉션 a 및 b의 요소를 포함하는 새로운 정렬 된 목록.

예외

  • NullPointerException − 두 컬렉션 중 하나가 null 인 경우.

다음 예는 org.apache.commons.collections4.CollectionUtils.collate()방법. 정렬 된 두 목록을 병합 한 다음 병합 및 정렬 된 목록을 인쇄합니다.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> sortedList1 = Arrays.asList("A","C","E");
      List<String> sortedList2 = Arrays.asList("B","D","F");
      List<String> mergedList = CollectionUtils.collate(sortedList1, sortedList2);
      System.out.println(mergedList);
   }
}

산출

출력은 다음과 같습니다.

[A, B, C, D, E, F]

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

목록 변형

CollectionUtils의 collect () 메소드는 한 유형의 객체 목록을 다른 유형의 객체 목록으로 변환하는 데 사용할 수 있습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.collect() 방법-

public static <I,O> Collection<O> collect(Iterable<I> inputCollection,
   Transformer<? super I,? extends O> transformer)

매개 변수

  • inputCollection − 입력을받을 컬렉션은 null 일 수 없습니다.

  • Transformer − 사용할 변환기는 null 일 수 있습니다.

반환 값

변환 된 결과 (새 목록).

예외

  • NullPointerException − 입력 컬렉션이 null 인 경우.

다음 예는 org.apache.commons.collections4.CollectionUtils.collect()방법. String에서 정수 값을 구문 분석하여 문자열 목록을 정수 목록으로 변환합니다.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> stringList = Arrays.asList("1","2","3");
      List<Integer> integerList = (List<Integer>) CollectionUtils.collect(
         stringList, new Transformer<String, Integer>() {
         @Override
         public Integer transform(String input) {
            return Integer.parseInt(input);
         }
      });
      System.out.println(integerList);
   }
}

산출

코드를 사용하면 다음 코드를 받게됩니다.

[1, 2, 3]

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

filter () 메서드

CollectionUtils의 filter () 메서드는 전달 된 조건자가 제공하는 조건을 충족하지 않는 개체를 제거하기 위해 목록을 필터링하는 데 사용할 수 있습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.filter() 방법-

public static <T> boolean filter(Iterable<T> collection,
   Predicate<? super T> predicate)

매개 변수

  • collection − 입력을받을 컬렉션은 null 일 수 없습니다.

  • predicate − 필터로 사용할 술어는 null 일 수 있습니다.

반환 값

컬렉션이이 호출에 의해 수정되면 true, 그렇지 않으면 false입니다.

다음 예는 org.apache.commons.collections4.CollectionUtils.filter()방법. 정수 목록을 필터링하여 짝수 만 가져옵니다.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<Integer> integerList = new ArrayList<Integer>(); 
      integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));
      System.out.println("Original List: " + integerList);
      CollectionUtils.filter(integerList, new Predicate<Integer>() {
         @Override
         public boolean evaluate(Integer input) {
            if(input.intValue() % 2 == 0) {
               return true;
            }
            return false;
         }
      });
      System.out.println("Filtered List (Even numbers): " + integerList);
   }
}

산출

다음 결과가 생성됩니다-

Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Even numbers): [2, 4, 6, 8]

filterInverse () 메서드

CollectionUtils의 filterInverse () 메서드는 전달 된 조건자가 제공하는 조건을 충족하는 개체를 제거하기 위해 목록을 필터링하는 데 사용할 수 있습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.filterInverse() 방법-

public static <T> boolean filterInverse(
   Iterable<T> collection, Predicate<? super T> predicate)

매개 변수

  • collection − 입력을받을 컬렉션은 null 일 수 없습니다.

  • predicate − 필터로 사용할 술어는 null 일 수 있습니다.

반환 값

컬렉션이이 호출에 의해 수정되면 true, 그렇지 않으면 false입니다.

다음 예는 org.apache.commons.collections4.CollectionUtils.filterInverse()방법. 홀수 만 얻기 위해 정수 목록을 필터링합니다.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<Integer> integerList = new ArrayList<Integer>(); 
      integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));
      System.out.println("Original List: " + integerList); 
      CollectionUtils.filterInverse(integerList, new Predicate<Integer>() {
         @Override
         public boolean evaluate(Integer input) {
            if(input.intValue() % 2 == 0) {
               return true;
            }
            return false;
         }
      });
      System.out.println("Filtered List (Odd numbers): " + integerList);
   }
}

산출

결과는 다음과 같습니다.

Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Odd numbers): [1, 3, 5, 7]

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

비어 있지 않은 목록 확인

CollectionUtils의 isNotEmpty () 메서드를 사용하면 null 목록에 대한 걱정없이 목록이 비어 있지 않은지 확인할 수 있습니다. 따라서 목록의 크기를 확인하기 전에 모든 곳에 널 검사를 배치 할 필요가 없습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.isNotEmpty() 방법-

public static boolean isNotEmpty(Collection<?> coll)

매개 변수

  • coll − 확인할 컬렉션은 null 일 수 있습니다.

반환 값

null이 아니고 비어 있지 않으면 True입니다.

다음 예는 org.apache.commons.collections4.CollectionUtils.isNotEmpty()방법. 목록이 비어 있는지 확인합니다.

import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = getList();
      System.out.println("Non-Empty List Check: " + checkNotEmpty1(list));
      System.out.println("Non-Empty List Check: " + checkNotEmpty1(list));
   }
   static List<String> getList() {
      return null;
   }
   static boolean checkNotEmpty1(List<String> list) {
      return !(list == null || list.isEmpty());
   }
   static boolean checkNotEmpty2(List<String> list) {
      return CollectionUtils.isNotEmpty(list);
   }
}

산출

출력은 다음과 같습니다.

Non-Empty List Check: false
Non-Empty List Check: false

빈 목록 확인

CollectionUtils의 isEmpty () 메서드는 null 목록에 대한 걱정없이 목록이 비어 있는지 확인하는 데 사용할 수 있습니다. 따라서 목록의 크기를 확인하기 전에 모든 곳에 널 검사를 배치 할 필요가 없습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.isEmpty() 방법-

public static boolean isEmpty(Collection<?> coll)

매개 변수

  • coll − 확인할 컬렉션은 null 일 수 있습니다.

반환 값

비어 있거나 null 인 경우 True입니다.

다음 예는 org.apache.commons.collections4.CollectionUtils.isEmpty()방법. 목록이 비어 있는지 확인합니다.

import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = getList();
      System.out.println("Empty List Check: " + checkEmpty1(list));
      System.out.println("Empty List Check: " + checkEmpty1(list));
   }
   static List<String> getList() {
      return null;
   }
   static boolean checkEmpty1(List<String> list) {
      return (list == null || list.isEmpty());
   }
   static boolean checkEmpty2(List<String> list) {
      return CollectionUtils.isEmpty(list);
   }
}

산출

다음은 코드의 출력입니다.

Empty List Check: true
Empty List Check: true

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

하위 목록 확인

CollectionUtils의 isSubCollection () 메서드를 사용하여 컬렉션에 지정된 컬렉션이 있는지 여부를 확인할 수 있습니다.

선언

다음은에 대한 선언입니다.

org.apache.commons.collections4.CollectionUtils.isSubCollection() 방법-

public static boolean isSubCollection(
   Collection<?> a, Collection<?> b)

매개 변수

  • a − 첫 번째 (하위) 컬렉션은 null이 아니어야합니다.

  • b − 두 번째 (수퍼) 컬렉션은 null이 아니어야합니다.

반환 값

a가 b의 하위 컬렉션 인 경우에만 true입니다.

다음 예는 org.apache.commons.collections4.CollectionUtils.isSubCollection()방법. 목록이 다른 목록의 일부인지 아닌지 확인하겠습니다.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Is List 2 contained in List 1: " + 
         CollectionUtils.isSubCollection(list2, list1));
   }
}

산출

다음과 같은 출력을 받게됩니다.

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Is List 2 contained in List 1: true

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

교차로 확인

CollectionUtils의 Intersection () 메서드를 사용하여 두 컬렉션 (교차) 사이의 공통 객체를 가져올 수 있습니다.

선언

다음은에 대한 선언입니다. org.apache.commons.collections4.CollectionUtils.intersection() 방법-

public static <O> Collection<O> intersection(Iterable<? extends O> a,
   Iterable<? extends O> b)

매개 변수

  • a − 첫 번째 (하위) 컬렉션은 null이 아니어야합니다.

  • b − 두 번째 (수퍼) 컬렉션은 null이 아니어야합니다.

반환 값

두 컬렉션의 교차점입니다.

다음 예는 org.apache.commons.collections4.CollectionUtils.intersection()방법. 우리는 두 목록의 교차점을 얻을 것입니다.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Commons Objects of List 1 and List 2: "
         + CollectionUtils.intersection(list1, list2));
   }
}

산출

코드를 실행하면 다음과 같은 출력이 표시됩니다.

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Commons Objects of List 1 and List 2: [A, A, B, B]

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

뺄셈 확인

CollectionUtils의 subtract () 메서드는 한 컬렉션의 개체를 다른 컬렉션에서 빼서 새 컬렉션을 가져 오는 데 사용할 수 있습니다.

선언

다음은에 대한 선언입니다. org.apache.commons.collections4.CollectionUtils.subtract() 방법-

public static <O> Collection<O> subtract(Iterable<? extends O> a,
   Iterable<? extends O> b)

매개 변수

  • a − 뺄 컬렉션은 null이 아니어야합니다.

  • b − 뺄 컬렉션은 null이 아니어야합니다.

반환 값

결과가있는 새 컬렉션입니다.

다음 예는 org.apache.commons.collections4.CollectionUtils.subtract()방법. 우리는 두 개의 목록을 뺄 것입니다.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("List 1 - List 2: " + CollectionUtils.subtract(list1, list2));
   }
}

산출

위의 코드를 실행하면 다음 출력이 표시됩니다.

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
List 1 - List 2: [A, C]

Apache Commons Collections 라이브러리의 CollectionUtils 클래스는 광범위한 사용 사례를 포괄하는 일반적인 작업을위한 다양한 유틸리티 메서드를 제공합니다. 상용구 코드 작성을 피하는 데 도움이됩니다. 이 라이브러리는 이제 Java 8의 Stream API에서 유사한 기능이 제공되므로 jdk 8 이전에는 매우 유용합니다.

조합 확인

CollectionUtils의 union () 메서드는 두 컬렉션의 합집합을 가져 오는 데 사용할 수 있습니다.

선언

다음은에 대한 선언입니다. org.apache.commons.collections4.CollectionUtils.union() 방법-

public static <O> Collection<O> union(
   Iterable<? extends O> a, Iterable<? extends O> b)

매개 변수

  • a − 첫 번째 컬렉션은 null이 아니어야합니다.

  • b − 두 번째 컬렉션은 null이 아니어야합니다.

반환 값

두 컬렉션의 결합.

다음 예는 org.apache.commons.collections4.CollectionUtils.union()방법. 우리는 두 목록의 합집합을 얻을 것입니다.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Union of List 1 and List 2: "
         + CollectionUtils.union(list1, list2));
   }
}

산출

이것은 다음과 같은 출력을 생성합니다-

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Union of List 1 and List 2: [A, A, A, B, B, C]