どうも、ちょげ(@chogetarou)です。
配列(Array)の先頭からN個の要素を取得する方法を紹介します。
方法
配列(Array)の先頭からN個の要素を取得する方法は、3つあります。
copyOf()
1つ目は、copyOf()を使う方法です。
まず、ArraysからcopyOf()を呼び出します。
そして、Arrays.copyOf()の第1引数に配列、第2引数に取得する要素数を指定します。
//N=取得する要素数
T[] firstN = Arrays.copyOf(array, N);
上記のArrays.copyOf()は、第1引数に指定した配列の先頭からN個の要素を取得します。
使用例
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
int[] numbers = new int[]{ 1, 2, 3, 4, 5, 6 };
int n = 3;
int[] firstN = Arrays.copyOf(numbers, n);
for (int i : firstN) {
System.out.print(i + ",");
}
}
}
出力:
1,2,3,
copyOfRange()
2つ目は、copyOfRange()を使う方法です。
まず、ArraysからcopyOfRange()を呼び出します。
Arrays.copyOfRange()の第1引数に配列を指定します。
そして、Arrays.copyOfRange()の第2引数に0、第3引数に取得する要素数を指定します。
//N=取得する要素数
T[] firstN = Arrays.copyOfRange(array, 0, n);
上記のArrays.copyOfRange()は、第1引数に指定した配列の先頭からN個の要素を取得します。
使用例
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
int[] numbers = new int[]{ 1, 2, 3, 4, 5, 6 };
int n = 3;
int[] firstN = Arrays.copyOfRange(numbers, 0, n);
for (int i : firstN) {
System.out.print(i + ",");
}
}
}
出力:
1,2,3,
stream()
3つ目は、stream()を使う方法です。
まず、Arraysからstream()を呼び出します。
stream()の引数に配列を指定します。
次に、stream()からlimit()を呼び出します。
limit()の引数に取得する要素数を指定します。
そして、limit()からtoArray()を呼び出します。
//N=取得する要素数
T[] firstN = Arrays.stream(array).limit(N).toArray();
上記のtoArray()は、stream()の引数に指定した配列の先頭からN個の要素を配列として返します。
使用例
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
int[] numbers = new int[]{ 1, 2, 3, 4, 5, 6 };
int n = 3;
int[] firstN = Arrays.stream(numbers).limit(n).toArray();
for (int i : firstN) {
System.out.print(i + ",");
}
}
}
出力:
1,2,3,
まとめ
配列(Array)の先頭からN個の要素を取得する方法は、次の3つです。
- copyOf()を使う方法
T[] firstN = Arrays.copyOf(array, N);
- copyOfRange()を使う方法
T[] firstN = Arrays.copyOfRange(array, 0, n);
- stream()を使う方法
T[] firstN = Arrays.stream(array).limit(N).toArray();
コメント