Commons-collections-quick-guide
Apache Commonsコレクション-概要
Commons Collectionsは、Java Collections Frameworkを強化します。 コレクションの処理を簡単にするいくつかの機能を提供します。 多くの新しいインターフェース、実装、ユーティリティを提供します。 コモンズコレクションの主な機能は次のとおりです-
- Bag -Bagインターフェースは、各オブジェクトのコピーを複数持つコレクションを簡素化します。
- BidiMap -BidiMapインターフェイスは、キーまたは値を使用するキーを使用して値を検索するために使用できる双方向マップを提供します。
- MapIterator -MapIteratorインターフェースは、マップの単純で簡単な反復を提供します。
- 変形デコレータ-変形デコレータは、コレクションに追加されたときに、コレクションのすべてのオブジェクトを変更できます。
- 複合コレクション-複合コレクションは、複数のコレクションを均一に処理する必要がある場合に使用されます。
- 順序付きマップ-順序付きマップは、要素が追加される順序を保持します。
- 順序付きセット-順序付きセットは、要素が追加される順序を保持します。
- 参照マップ-参照マップにより、キー/値を厳密な制御の下でガベージコレクションできます。
- コンパレータ実装-多くのコンパレータ実装が利用可能です。
- イテレータの実装-多くのイテレータの実装が利用可能です。
- Adapter Classes -配列と列挙をコレクションに変換するアダプタークラスが利用可能です。
- ユーティリティ-ユニオン、インターセクションなどのコレクションの一般的なセット理論プロパティをテストまたは作成するためのユーティリティが利用可能 閉鎖をサポートします。
コモンズコレクション-環境設定
ローカル環境のセットアップ
Javaプログラミング言語用に環境をセットアップする場合は、このセクションで、マシンにJavaをダウンロードしてセットアップする方法を説明します。 環境をセットアップするには、以下の手順に従ってください。
Java SEは、https://java.sun.com/javase/downloads/index_jdk5.jsp [Javaのダウンロード]リンクから無料で入手できます。 そのため、オペレーティングシステムに基づいてバージョンをダウンロードします。
指示に従ってJavaをダウンロードし、*。exe *を実行して、マシンにJavaをインストールします。 マシンにJavaをインストールしたら、正しいインストールディレクトリを指すように環境変数を設定する必要があります-
Windows 2000/XPのパスのセットアップ
_c:\ Program Files \ java \ jdk_ディレクトリにJavaがインストールされていると想定しています-
- 「マイコンピュータ」を右クリックして、「プロパティ」を選択します。
- 「詳細」タブの下の「環境変数」ボタンをクリックします。
- ここで、「Path」変数を変更して、Java実行可能ファイルへのパスも含まれるようにします。 たとえば、パスが現在「C:\ WINDOWS \ SYSTEM32」に設定されている場合、パスを「C:\ WINDOWS \ SYSTEM32; c:\ Program Files \ java \ jdk \ bin」に変更します。
Windows 95/98/MEのパスのセットアップ
_c:\ Program Files \ java \ jdk_ディレクトリにJavaがインストールされていると想定しています-
- 「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があります。 しかし、今のところ、次のいずれかを検討することができます-
- メモ帳-Windowsマシンでは、メモ帳(このチュートリアルで推奨)、TextPadなどの単純なテキストエディタを使用できます。
- Netbeans -これは、オープンソースで無料のJava IDEであり、https://www.netbeans.org/indexlからダウンロードできます。
- 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フォルダーにコピーしました。
OS | Archive name |
---|---|
Windows | commons-collections4-4.1-bin.zip |
Linux | commons-collections4-4.1-bin.tar.gz |
Mac | commons-collections4-4.1-bin.tar.gz |
Apache Common Collections環境を設定する
*APACHE_HOME* 環境変数を設定して、マシン上のApache jarが保存されているベースディレクトリの場所を指すようにします。 次のように、さまざまなオペレーティングシステムのApacheフォルダーにcommons-collections4-4.1-bin.zipを抽出したと仮定します。
OS | Output |
---|---|
Windows | Set the environment variable APACHE_HOME to C:\Apache |
Linux | export APACHE_HOME=/usr/local/Apache |
Mac | export APACHE_HOME=/Library/Apache |
CLASSPATH変数を設定する
Common Collections jarの場所を指すように CLASSPATH 環境変数を設定します。 次のように、さまざまなオペレーティングシステムのApacheフォルダーにcommons-collections4-4.1-bin.zipを保存していると仮定します。
OS | Output |
---|---|
Windows | Set the environment variable CLASSPATH to %CLASSPATH%;%APACHE_HOME%\commons-collections4-4.1-bin.jar;.; |
Linux | export CLASSPATH=$CLASSPATH:$APACHE_HOME/commons-collections4-4.1-bin.jar:. |
Mac | export CLASSPATH=$CLASSPATH:$APACHE_HOME/commons-collections4-4.1-bin.jar:. |
Apache Commons Collections-バッグインターフェイス
サポートバッグに新しいインターフェイスが追加されました。 Bagは、コレクションにオブジェクトが出現する回数をカウントするコレクションを定義します。 たとえば、Bagに\ {a、a、b、c}が含まれる場合、getCount( "a")は2を返し、uniqueSet()は一意の値を返します。
インターフェイス宣言
以下は、org.apache.commons.collections4.Bag <E>インターフェースの宣言です-
public interface Bag<E>
extends Collection<E>
方法
Sr.No. | Method & Description |
---|---|
1 |
boolean add(E object) (違反)指定されたオブジェクトの1つのコピーをバッグに追加します。 |
2 |
boolean add(E object, int nCopies) 指定されたオブジェクトのnCopiesコピーをBagに追加します。 |
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]
コモンズコレクション-BidiMapインターフェイス
双方向マップをサポートする新しいインターフェイスが追加されました。 双方向マップを使用すると、値を使用してキーを検索でき、キーを使用して値を簡単に検索できます。
インターフェイス宣言
以下はの宣言です
- org.apache.commons.collections4.BidiMap <K、V>インターフェース- *
public interface BidiMap<K,V>
extends IterableMap<K,V>
方法
Sr.No. | Method & Description |
---|---|
1 |
指定された値に現在マップされているキーを取得します。 |
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}
コモンズコレクション-MapIteratorインターフェイス
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インターフェース
OrderedMapは、要素が追加される順序を保持するためのマップの新しいインターフェイスです。 LinkedMapとListOrderedMapは2つの使用可能な実装です。 このインターフェイスは、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-ヌルを無視
Apache Commons CollectionsライブラリのCollectionUtilsクラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。 定型コードの記述を避けるのに役立ちます。 同様の機能がJava 8のStream APIで提供されるようになったため、このライブラリはjdk 8より前に非常に便利です。
ヌルでない要素を確認する
CollectionUtilsのaddIgnoreNull()メソッドを使用して、null以外の値のみがコレクションに追加されるようにすることができます。
宣言
以下はの宣言です
- org.apache.commons.collections4.CollectionUtils.addIgnoreNull()*
public static <T> boolean addIgnoreNull(Collection<T> collection, T object)
パラメーター
- collection -追加するコレクションはnullであってはなりません。
- オブジェクト-追加するオブジェクト、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コレクション-マージと並べ替え
Apache Commons CollectionsライブラリのCollectionUtilsクラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。 定型コードの記述を避けるのに役立ちます。 同様の機能がJava 8のStream APIで提供されるようになったため、このライブラリはjdk 8より前に非常に便利です。
ソートされた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クラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。 定型コードの記述を避けるのに役立ちます。 同様の機能が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()メソッドを使用すると、リストが空であるかどうかを心配せずにリストが空かどうかを確認できます。 したがって、リストのサイズをチェックする前に、どこにでもヌルチェックを配置する必要はありません。
宣言
以下はの宣言です
- 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-インクルージョン
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 -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コレクション-交差点
Apache Commons CollectionsライブラリのCollectionUtilsクラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。 定型コードの記述を避けるのに役立ちます。 同様の機能がJava 8のStream APIで提供されるようになったため、このライブラリはjdk 8より前に非常に便利です。
交差点の確認
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コレクション-減算
Apache Commons CollectionsライブラリのCollectionUtilsクラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。 定型コードの記述を避けるのに役立ちます。 同様の機能がJava 8のStream APIで提供されるようになったため、このライブラリはjdk 8より前に非常に便利です。
減算の確認
CollectionUtilsのminus()メソッドを使用して、あるコレクションのオブジェクトを他のコレクションから減算することにより、新しいコレクションを取得できます。
宣言
以下はの宣言です
- 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コレクション-Union
Apache Commons CollectionsライブラリのCollectionUtilsクラスは、幅広いユースケースをカバーする一般的な操作のためのさまざまなユーティリティメソッドを提供します。 定型コードの記述を避けるのに役立ちます。 同様の機能がJava 8のStream APIで提供されるようになったため、このライブラリはjdk 8より前に非常に便利です。
組合をチェック
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]