java 範囲を指定して配列をコピーする
javaで、範囲を指定して配列をコピーする手順を記述してます。
環境
- OS windows11 home
- java 17.0.2
手順
範囲を指定して配列をコピーするには、「Arrays.copyOfRange」を使用します。
Arrays.copyOfRange( 配列 , 開始のインデックス番号, 終了のインデックス番号)
// 終了のインデックス番号の値はコピーされず、1つ前までコピーされます。実際に、使用してみます。
import java.util.Arrays;
public class App {
public static void main(String[] args) throws Exception {
int[] a = {1, 2, 3, 4, 5};
int[] b = Arrays.copyOfRange(a, 1,4);
System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 5]
System.out.println(Arrays.toString(b)); // [2, 3, 4]
}
}コピーされていることが確認できます。
範囲を超える
コピー時に範囲を超えると、0で埋められます。
import java.util.Arrays;
public class App {
public static void main(String[] args) throws Exception {
int[] a = {1, 2, 3, 4, 5};
int[] b = Arrays.copyOfRange(a, 1,7);
System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 5]
System.out.println(Arrays.toString(b)); // [2, 3, 4, 5, 0, 0]
}
}マイナスを指定
マイナスを指定するとエラーとなります。
import java.util.Arrays;
public class App {
public static void main(String[] args) throws Exception {
int[] a = {1, 2, 3, 4, 5};
int[] b = Arrays.copyOfRange(a, -1,3);
// Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: arraycopy: source index -1 out of bounds for int[5]
// at java.base/java.lang.System.arraycopy(Native Method)
// at java.base/java.util.Arrays.copyOfRange(Arrays.java:3895)
// at App.main(App.java:7)
}
}-
前の記事
Railsのエラー『ActiveRecord::RecordInvalid: Validation failed』の解決方法 2025.02.04
-
次の記事
PostgreSQL jsonデータからkeyのみを取得する 2025.02.04
コメントを書く