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]