【Java】使えると意外に便利?!Arraysクラスについて

に公開

Arrays クラスとは?

Arrays クラス は、配列を簡単に操作するための便利な道具です
java.util パッケージにあります

  • 配列(Array): たくさんのデータをまとめて扱える
  • Arrays クラス:「並び替え」「検索」「コピー」などの処理を簡単にできる ようになる

Arrays クラスの便利なメソッド

  • 表示:toString()
  • 並び替え:sort()
  • 検索:binarySearch()
  • コピー:copyOf()
  • 初期化:fill()
  • 比較:equals()
  • リスト変換:asList()

toString():配列の中身を表示

普通にSystem.out~を使用して表示すると・・・

package example;

public class Main {
	public static void main(String[] args) {
		int[] numbers = {10, 20, 30, 40};
		System.out.println(numbers);  // → わけのわからない出力([I@279f2327)
	}
}

Arrays.toString() を使うと

package example;

import java.util.Arrays;

public class Main {
	public static void main(String[] args) {

		int[] numbers = { 10, 20, 30, 40 };
		System.out.println(Arrays.toString(numbers)); // → [10, 20, 30, 40]

	}
}

sort():配列を並び替え

Arrays.sort() を使えば一発!

package example;

import java.util.Arrays;

public class Main {
	public static void main(String[] args) {
		int[] numbers = {30, 10, 50, 20, 40};
		Arrays.sort(numbers);  // 昇順に並び替え

		System.out.println(Arrays.toString(numbers));  // → [10, 20, 30, 40, 50]

	}
}

binarySearch():配列から特定の値を探す

  • binarySearch() を使うと、すばやく値の位置を見つけられる
  • binarySearch() を使う前に sort() で並び替えておく必要がある
package example;

import java.util.Arrays;

public class Main {
	public static void main(String[] args) {
		int[] numbers = { 10, 20, 30, 40, 50 };
		Arrays.sort(numbers); // 必ずソートする!

		int index = Arrays.binarySearch(numbers, 30);
		//30の位置:2
		System.out.println("30の位置:" + index);

	}
}

copyOf():配列をまるごとコピー

package example;

import java.util.Arrays;

public class Main {
	public static void main(String[] args) {

		int[] original = { 10, 20, 30, 40, 50 };

		// 配列を完全コピー
		int[] copy = Arrays.copyOf(original, original.length);

		System.out.println(Arrays.toString(copy)); // → [10, 20, 30, 40, 50]
	}
}

<出力例>
false
original: [1, 2, 3]
copy: [100, 2, 3]

copyOfRange():配列の一部をコピーしたい

package example;

import java.util.Arrays;

public class Main {
	public static void main(String[] args) {
		int[] original = { 10, 20, 30, 40, 50 };

		// 1番目から3番目までコピー
		int[] partialCopy = Arrays.copyOfRange(original, 1, 4);

		System.out.println(Arrays.toString(partialCopy)); // → [20, 30, 40]

	}
}

fill():配列を特定の値で埋める

全要素を一括で初期化できる!

package example;

import java.util.Arrays;

public class Main {
	public static void main(String[] args) {
		int[] arr = new int[5];
		Arrays.fill(arr, -1);

		System.out.println(Arrays.toString(arr));  // → [-1, -1, -1, -1, -1]

	}
}

equals():配列の中身を比較する

例)配列 arr1 と arr2 が同じかチェック

package example;

import java.util.Arrays;

public class Main {
	public static void main(String[] args) {
		int[] arr1 = { 1, 2, 3 };
		int[] arr2 = { 1, 2, 3 };
		int[] arr3 = { 1, 2, 4 };

		System.out.println(Arrays.equals(arr1, arr2)); // → true
		System.out.println(Arrays.equals(arr1, arr3)); // → false
	}
}

asList():配列を List に変換

package example;

import java.util.Arrays;
import java.util.List;

public class Main {
	public static void main(String[] args) {
		String[] fruits = {"Apple", "Banana", "Orange"};
		List<String> fruitList = Arrays.asList(fruits);

		System.out.println(fruitList);  // → [Apple, Banana, Orange]
	}
}

https://zenn.dev/codek2/books/63c880c460c21e

https://note.com/codek2/n/n7a61676e282a

https://zenn.dev/articles/7fbfa22ba62e69/edit

https://note.com/codek2/n/n2a8204e60706

https://youtube.com/@codek2_studio?feature=shared

https://zenn.dev/codek2?tab=books

Discussion