Eu tenho uma matriz de números inteiros em Java, gostaria de usar apenas uma parte dele. Eu sei que em Python você pode fazer algo como esse array [index:] e ele retorna o array do índice. É algo como isso possível em Java.
275
O comprimento de uma matriz em Java é imutável. Portanto, você precisa copiar a parte desejada como uma nova matriz.
Use o copyOfRange
método da classe java.util.Arrays :
int[] newArray = Arrays.copyOfRange(oldArray, startIndex, endIndex);
startIndex é o índice inicial do intervalo a ser copiado, inclusive.
endIndex é o índice final do intervalo a ser copiado, exclusivo. (Esse índice pode estar fora da matriz)
Por exemplo:
//index 0 1 2 3 4
int[] arr = {10, 20, 30, 40, 50};
Arrays.copyOfRange(arr, 0, 2); // returns {10, 20}
Arrays.copyOfRange(arr, 1, 4); // returns {20, 30, 40}
Arrays.copyOfRange(arr, 2, arr.length); // returns {30, 40, 50} (length = 5)
Arrays.copyOfRange(Thread.currentThread().getStackTrace(),1,255)
como, em vez de 255 I não pode usar Integer.MAX_VALUE, no caso de eu não quero obter o comprimento realendIndex
tamanho maior que o tamanho da matriz passado como o primeiro argumento. Portanto, se você quiser uma cópia completa, crie uma variável referente a essa matriz e useArrays.copyOfRange(var, 0, var.length)
orArrays.copyOf(var, var.length)
Arrays.copyOfRange(Thread.currentThread().getStackTrace(),1,Short.MAX_VALUE)
ArrayIndexOutOfBoundsException
.Você pode agrupar sua matriz como uma lista e solicitar uma sub-lista dela.
fonte
Sim, você pode usar Arrays.copyOfRange
Faz a mesma coisa (observe que há uma cópia: você não altera a matriz inicial).
fonte
List
e um,subList
conforme descrito na resposta do @ K-ballo.Podes tentar:
Veja javadoc para System .
fonte
Se você estiver usando o Java 1.6 ou superior, poderá
Arrays.copyOfRange
copiar uma parte da matriz. Do javadoc:Aqui está um exemplo simples :
fonte
Confira copyOfRange ; e exemplo:
fonte
Você pode usar algo como isto:
Arrays#copyOfRange
fonte
Você pode usar o
subList(int fromIndex, int toIndex)
método em seus números inteiros, algo como isto:Saída será:
2 3
.Observe que o
subList(int fromIndex, int toIndex)
método executa menos 1 na 2ª variável que recebe (var2 - 1), não sei exatamente por que, mas é o que acontece, talvez para reduzir a chance de exceder o tamanho da matriz.fonte