ApacheCommonsCollections-クイックガイド
CommonsCollectionsはJavaCollectionsFrameworkを拡張します。コレクションの処理を簡単にするいくつかの機能を提供します。多くの新しいインターフェース、実装、ユーティリティを提供します。
CommonsCollectionsの主な機能は次のとおりです-
Bag −バッグインターフェイスは、各オブジェクトの複数のコピーを持つコレクションを簡素化します。
BidiMap − BidiMapインターフェースは、キーを使用して値をルックアップするため、または値を使用してキーをルックアップするために使用できる双方向マップを提供します。
MapIterator − MapIteratorインターフェースは、マップ上で単純かつ簡単な反復を提供します。
Transforming Decorators −デコレータを変換すると、コレクションに追加されたときに、コレクションのすべてのオブジェクトを変更できます。
Composite Collections −複数のコレクションを均一に処理する必要がある複合コレクションが使用されます。
Ordered Map −順序付きマップは、要素が追加される順序を保持します。
Ordered Set −順序集合は、要素が追加される順序を保持します。
Reference map −参照マップを使用すると、キー/値を厳密に制御してガベージコレクションできます。
Comparator implementations −多くのコンパレータ実装が利用可能です。
Iterator implementations −多くのイテレータ実装が利用可能です。
Adapter Classes −配列と列挙をコレクションに変換するために、アダプタクラスを使用できます。
Utilities−ユーティリティは、和集合、共通部分などのコレクションの典型的な集合論プロパティをテストまたは作成するために使用できます。閉鎖をサポートします。
ローカル環境のセットアップ
それでもJavaプログラミング言語用の環境をセットアップする場合は、このセクションで、マシンにJavaをダウンロードしてセットアップする方法について説明します。以下の手順で環境を設定してください。
JavaSEはリンクから無料で入手できます https://www.oracle.com/technetwork/java/archive-139210.html したがって、オペレーティングシステムに基づいたバージョンをダウンロードします。
指示に従ってJavaをダウンロードし、.exeを実行してJavaをマシンにインストールします。マシンにJavaをインストールしたら、正しいインストールディレクトリを指すように環境変数を設定する必要があります。
Windows 2000 / XPのパスの設定
Javaをにインストールしていることを前提としています c:\Program Files\java\jdk directory
「マイコンピュータ」を右クリックし、「プロパティ」を選択します。
[詳細設定]タブの下にある[環境変数]ボタンをクリックします。
ここで、「Path」変数を変更して、Java実行可能ファイルへのパスも含まれるようにします。例、パスが現在に設定されている場合'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/。
CommonCollectionsアーカイブをダウンロードする
commons-collections4-4.1-bin.zipからApacheCommon Collectionsjarファイルの最新バージョンをダウンロードします。このチュートリアルを書いている時点で、私たちはダウンロードしましたcommons-collections4-4.1-bin.zip にコピーしました C:\>Apache folder。
OS | アーカイブ名 |
---|---|
ウィンドウズ | commons-collections4-4.1-bin.zip |
Linux | commons-collections4-4.1-bin.tar.gz |
マック | commons-collections4-4.1-bin.tar.gz |
ApacheCommonCollections環境を設定する
をセットする APACHE_HOMEApachejarがマシンに保存されているベースディレクトリの場所を指す環境変数。次のように、さまざまなオペレーティングシステムのApacheフォルダーにcommons-collections4-4.1-bin.zipを抽出したと仮定します。
OS | アーカイブ名 |
---|---|
ウィンドウズ | 環境変数APACHE_HOMEをC:\ Apacheに設定します |
Linux | エクスポートAPACHE_HOME = / usr / local / Apache |
マック | APACHE_HOME = / Library / Apacheをエクスポートします |
CLASSPATH変数を設定する
をセットする CLASSPATHCommon Collectionsjarの場所を指す環境変数。次のように、commons-collections4-4.1-bin.zipをさまざまなオペレーティングシステムのApacheフォルダーに保存したと仮定します。
OS | 出力 |
---|---|
ウィンドウズ | 環境変数CLASSPATHを%CLASSPATH%;%APACHE_HOME%\ commons-collections4-4.1-bin.jar;。;に設定します。 |
Linux | export CLASSPATH = $ CLASSPATH:$ APACHE_HOME /commons-collections4-4.1-bin.jar:。 |
マック | export CLASSPATH = $ CLASSPATH:$ APACHE_HOME /commons-collections4-4.1-bin.jar:。 |
バッグをサポートするために新しいインターフェースが追加されました。バッグは、オブジェクトがコレクションに表示される回数をカウントするコレクションを定義します。たとえば、バッグに{a、a、b、c}が含まれている場合、getCount( "a")は2を返し、uniqueSet()は一意の値を返します。
インターフェイス宣言
以下は、org.apache.commons.collections4.Bag <E>インターフェースの宣言です。
public interface Bag<E>
extends Collection<E>
メソッド
バッグの推論方法は次のとおりです。
シニア番号 | 方法と説明 |
---|---|
1 | boolean add(E object) (違反)指定されたオブジェクトのコピーを1つバッグに追加します。 |
2 | boolean add(E object, int nCopies) 指定されたオブジェクトのnCopiesコピーをバッグに追加します。 |
3 | boolean containsAll(Collection<?> coll) (違反)カーディナリティを尊重して、バッグに指定されたコレクションのすべての要素が含まれている場合、trueを返します。 |
4 | int getCount(Object object) 現在バッグ内にある特定のオブジェクトの出現回数(カーディナリティ)を返します。 |
5 | Iterator<E> iterator() カーディナリティによるコピーを含む、メンバーのセット全体のイテレータを返します。 |
6 | boolean remove(Object object) (違反)指定されたオブジェクトのすべての出現をバッグから削除します。 |
7 | boolean remove(Object object, int nCopies) 指定されたオブジェクトのnCopiesコピーをバッグから削除します。 |
8 | boolean removeAll(Collection<?> coll) (違反)カーディナリティを尊重して、指定されたコレクションで表されるすべての要素を削除します。 |
9 | boolean retainAll(Collection<?> coll) (違反)カーディナリティを尊重して、特定のコレクションに含まれていないバッグのメンバーをすべて削除します。 |
10 | int size() すべてのタイプのバッグ内のアイテムの総数を返します。 |
11 | Set<E> uniqueSet() バッグ内の一意の要素のセットを返します。 |
継承されたメソッド
このインターフェースは、次のインターフェースからメソッドを継承します-
- 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インターフェイスのメソッドは次のとおりです-
シニア番号 | 方法と説明 |
---|---|
1 | K getKey(Object value) 指定された値に現在マップされているキーを取得します。 |
2 | BidiMap<V,K> inverseBidiMap() キーと値が逆になっているこのマップのビューを取得します。 |
3 | 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は、2つの利用可能な実装です。このインターフェースは、マップのイテレーターをサポートし、マップ内で順方向または逆方向の両方向の反復を可能にします。次の例は同じことを示しています。
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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
ヌルでない要素を確認する
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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
2つのソートされたリストのマージ
CollectionUtilsのcollate()メソッドを使用して、既にソートされている2つのリストをマージできます。
宣言
以下はの宣言です
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 −2番目のコレクションはnullであってはなりません。
戻り値
コレクションaおよびbの要素を含む新しいソート済みリスト。
例外
NullPointerException −いずれかのコレクションがnullの場合。
例
次の例は、の使用法を示しています org.apache.commons.collections4.CollectionUtils.collate()方法。2つのソート済みリストをマージしてから、マージしてソート済みのリストを印刷します。
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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
リストの変換
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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
空でないリストをチェックしています
CollectionUtilsのisNotEmpty()メソッドを使用すると、nullリストを気にすることなく、リストが空でないかどうかを確認できます。したがって、リストのサイズをチェックする前に、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リストを気にすることなく、リストが空かどうかを確認できます。したがって、リストのサイズをチェックする前に、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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
サブリストを確認しています
CollectionUtilsのisSubCollection()メソッドを使用して、コレクションに指定されたコレクションが含まれているかどうかを確認できます。
宣言
以下はの宣言です
org.apache.commons.collections4.CollectionUtils.isSubCollection() 方法−
public static boolean isSubCollection(
Collection<?> a, Collection<?> b)
パラメーター
a −最初の(サブ)コレクションはnullであってはなりません。
b − 2番目の(スーパー)コレクションは、nullであってはなりません。
戻り値
aがbのサブコレクションである場合にのみ真。
例
次の例は、の使用法を示しています 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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
交差点を確認しています
CollectionUtilsのintersection()メソッドを使用して、2つのコレクション(交差)間の共通オブジェクトを取得できます。
宣言
以下はの宣言です org.apache.commons.collections4.CollectionUtils.intersection() 方法−
public static <O> Collection<O> intersection(Iterable<? extends O> a,
Iterable<? extends O> b)
パラメーター
a −最初の(サブ)コレクションはnullであってはなりません。
b − 2番目の(スーパー)コレクションは、nullであってはなりません。
戻り値
2つのコレクションの交差点。
例
次の例は、の使用法を示しています org.apache.commons.collections4.CollectionUtils.intersection()方法。2つのリストの共通部分を取得します。
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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
減算の確認
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()方法。2つのリストを減算します。
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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。ボイラープレートコードの記述を回避するのに役立ちます。このライブラリは、Java8のStreamAPIで同様の機能が提供されるようになったため、jdk8より前は非常に便利です。
ユニオンをチェックしています
CollectionUtilsのunion()メソッドを使用して、2つのコレクションの和集合を取得できます。
宣言
以下はの宣言です org.apache.commons.collections4.CollectionUtils.union() 方法−
public static <O> Collection<O> union(
Iterable<? extends O> a, Iterable<? extends O> b)
パラメーター
a −最初のコレクションはnullであってはなりません。
b −2番目のコレクションはnullであってはなりません。
戻り値
2つのコレクションの和集合。
例
次の例は、の使用法を示しています org.apache.commons.collections4.CollectionUtils.union()方法。2つのリストの和集合を取得します。
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]