Czy istnieje metoda, która skopiuje sekcję tablicy (nie tablicy) i utworzy z niej nową tablicę?Sekcja kodu Java tablicy
Example:
[1,2,3,4,5]
i utworzyć nową tablicę z niego:
[1,2,3]
czy są jakieś jedna linia/metody, które będą to robić?
Czy istnieje metoda, która skopiuje sekcję tablicy (nie tablicy) i utworzy z niej nową tablicę?Sekcja kodu Java tablicy
Example:
[1,2,3,4,5]
i utworzyć nową tablicę z niego:
[1,2,3]
czy są jakieś jedna linia/metody, które będą to robić?
Oto Java 1.4 kompatybilne 1,5-liner:
int[] array = { 1, 2, 3, 4, 5 };
int size = 3;
int[] part = new int[size];
System.arraycopy(array, 0, part, 0, size);
Można to zrobić w jednej linii, ale nie miałyby odniesienie do wynik.
Aby wykonać jedną wkładkę, można byłaby to do metody:
private static int[] partArray(int[] array, int size) {
int[] part = new int[size];
System.arraycopy(array, 0, part, 0, size);
return part;
}
następnie wywołać tak:
int[] part = partArray(array, 3);
Zobacz metodę Arrays.copyOfRange
Arrays#copyOfRange załatwia sprawę.
int [] myArray = [1,2,3,4,5];
int [] holder = new int[size];
System.arraycopy(myArray,0,holder,size);
gdzie 0 oznacza indeks tablicy źródłowej, z którego należy rozpocząć kopiowanie. i
rozmiar oznacza liczbę operacji kopiowania. To, że możesz zmieniać się w zależności od potrzeb.
copyOfRange tablic ma i wiele innych sposobów, dzięki którym można to osiągnąć
+1 za komentarz. – Lion
Brakuje jednego argumentu, ponieważ wymaga on innej int dla pozycji docelowej. –
Jest istniejące wcześniej metoda w java.util.Arrays
: newArray = Arrays.copyOfRange(myArray, startindex, endindex)
. Albo można łatwo napisać własną metodę:
public static array[] copyOfRange(array[] myarray, int from, int to) {
array[] newarray = new array[to - from];
for (int i = 0 ; i < to - from ; i++) newarray[i] = myarray[i + from];
return newarray;
}
Jak inni stwierdzili, można użyć metody Arrays.copyOfRange . Przykładem jest:
String[] main = {"one", "two", "three", "four", "five"};
int from = 2;
int to = 4;
String[] part = Arrays.copyOfRange(main, from, to);
Teraz część będą: { "dwa", "trzy", "cztery"}
Możliwy duplikat [dostać tylko część tablicy w Java?] (http://stackoverflow.com/questions/11001720/get-only-part-of-an-array-in-java) – 32cupo