東大ニート

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

<Java>配列を操作するArraysクラスの使い方

Javaには配列を扱う上で便利な機能を提供する「Arrays」クラスが提供されています。

配列をソートしたい、配列の要素を検索したいといった場合にはこのArraysクラスを使用します。Arraysクラスのメソッドについて調べたので、まとめておきます。

同様にコレクションを扱う「Collections」クラスもあるので、今度メモしようと思います。

 TECHSCOREさんの記事がわかりやすかったので、参考にさせていただきました。

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

 

Arraysクラスの使い方

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

  1. import java.util.Arrays;

  2. public class Main {

  3.        public static void main(String args ) {

  4.               String str = {"Japan", "Korea", "China"};

  5.               Arrays.sort(str);

  6.               for (int i = 0; i < str.lengthi++) {

  7.                      System.out.println(str[i]);

  8.               }

  9.        }

  10. }

ポイント. Arraysクラスのインポート(1行目)

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

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

 

Arraysクラスのメソッド

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

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

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

  • sort

配列を昇順にソートします。「Arrays.sort(str);」と記述します。
もし、指定した範囲だけソートしたい場合は後ろに引数を2つ追加します。例えば、2番目の要素から5番目の要素だけソートしたい場合は「Arrays.sort(str, 1, 5);」となります。

また、昇順以外でソートしたい場合(降順や複数条件の場合)はComparatorを使用します。しかし、難しかったので、これについてはまた今度…。

  • binarySearch

配列を検索し、出現する箇所のindexを返します。
要素「"Japan"」が出現するindexを検索したい時は
「int index = Arrays.binarySearch(str, "Japan");」のように記述します。
注意点として、あらかじめ配列をソートしておかないと結果が保証されません。

  • fill

配列の要素全てを、指定した値に変えます。全て「""」とする場合、
「Arrays.fill(str, "")」と記述します。
もし、指定した範囲だけ値を変えたい場合は、int型の第2・第3引数を追加します。例えば3番目の要素から5番目の要素だけ値を変えたい場合は「Arrays.fill(str, 2, 5, "");」となります。

  • equals

2つの配列が同じであるか判定し、trueまたはfalseを返します。
「boolean equal = Arrays.equals(str1, str2);」と記述します。

  • asList

指定された配列を元にして、リストを作成します。
ただしリストは固定長で、要素を新たに加えたり削除する事はできません。要素の変更は可能です。またその変更は、元の配列に反映されます。
「List<String> list = Arrays.asList(str)」と記述します。

また、この場合は配列に格納されているデータは参照型でなければなりません(プリミティブ型ではダメです)。

 

以上です。ソートなど便利ですね。