⛳
【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]
}
}
Discussion