東大ニート

東大卒のニートが勉強したことをメモするブログ

<Java>コレクションを操作するCollectionsクラスの使い方

前回は配列を操作するArraysクラスについて書いたので、今回はコレクションを操作するCollectionsクラスについて書いてみます。

CollectionsクラスにはArraysクラスとよく似た機能に加え、Collectionsクラス特有のメソッドもあります。「List」「Map」「Set」といったコレクションを使用する時はCollectionsメソッドをうまく利用するようにしましょう。

 こちらもTECHSCOREさんの記事を参考にさせていただきました。

5. 配列/コレクションを操作するクラス (2) | TECHSCORE(テックスコア)

Collectionsクラスの使い方

以下の例では、Collectionsクラスのreverseメソッドを使用しています。

  1. import java.util.ArrayList;

  2. import java.util.Collections;

  3. public class Main {

  4.        public static void main(String args[] ) {

  5.               ArrayList<String> al = new ArrayList<String>(); 

  6.               al.add("Japan");

  7.               al.add("Korea");

  8.               al.add("China");

  9.               Collections.reverse(al);

  10.               for (int i = 0; i < al.size(); i++) {

  11.                      System.out.println(al.get(i));

  12.               }

  13.        }

  14. }

ポイント. Collectionsクラスのインポート(2行目)

まず、java.utilパッケージに含まれるCollectionsクラスをインポートします。
「import java.util.Collections;」を記述します。

これでCollectionsクラスのメソッドを使用できます。

 

Collectionsクラスのメソッド

上記のコード例では「reverse」メソッド(10行目)を使用しています。

使用する時はメソッドの前に「Collections.」を付けるのを忘れないようにしましょう。

CollectionsクラスではArraysクラスとよく似た機能も多くあります。
「sort」・「binarySearch」・「fill」についてはArraysクラスと同様、Collectionsクラスでも使用できます(binarySearchでは事前にソートが必要なところも同じです)。
これらの使い方については配列を操作するArraysクラスの使い方に書いています。

その他の代表的なメソッドは以下の通りです。
※記述例ではArrayList「al」への処理を想定して記載しています。

  • indexOfSubList・lastIndexOfSubList(対象:リスト)

indexOfSubListはリストの先頭から、lastIndexOfSubListはリストの最後から検索し、最初に出現する箇所のindexを返します。
リスト「al」に対し、リスト「target」と一致する箇所があるか検索する場合は、
「int a = Collections.indexOfSubList(al, target);」のように記述します。
また、このメソッドでは検索開始するindexは指定できません。一致する箇所がない場合は「-1」を返します。

  • max・min(対象:コレクション)

コレクションから最大、または最小の値を返します。Comparatorを使用して、比較条件を指定することもできます。
「String max = Collections.max(al);」のように記述します。

  • reverse(対象:リスト)

各要素の順番を逆にします。「Collections.reverse(al);」と記述します。

  • rotate(対象:リスト)

全要素を指定された分だけずらします。「Collections.rotate(al, 3);」と記述した場合、1番目の要素が4番目の要素となり、2番目の要素が5番目の要素となります。

  • shuffle(対象:リスト)

各要素の並び順をランダムに変更します。「Collections.shuffle(al);」と記述します。

  • swap(対象:リスト)

指定した要素を入れ替えます。3番目の要素と5番目の要素を入れ替える場合「Collections.swap(al, 2, 4);」と記述します。

 

他にもまだまだありますが、今の僕が使いそうなのはとりあえずこの位でしょうか…。