aprendendo java: métodos úteis para manipulação de arrays
Escrito por meleu em 28 Oct 2008Para copiar o conteúdo de um array para outro, pode-se usar o método arraycopy da classe System. a sintaxe é a seguinte:
System.arraycopy(from, fromIndex, to, toIndex, count);
As variáveis from e to devem ser Object. E como sabemos, todo array em java É UM Object (ou seja, herda os campos e métodos da classe Object).
Traduzindo para o bom português: copie os "count" elementos de "from", começando em "fromIndex" e vá armazenando em "to" a partir de "toIndex".
Exemplo de utilização do método arraycopy:
public class teste {
public static void main(String args[]) {
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.arraycopy(smallPrimes, 2, luckyNumbers, 3, 4);
for(int i = 0; i < luckyNumbers.length; i++)
System.out.println(i +": "+ luckyNumbers[i]);
} // final de main
} // final da classe teste
A saída deste programa será:
0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13
A simples ordenação de um array pode ser feita através do método sort da classe java.util.Arrays. Para ordenar basta fazer o seguinte (luckyNumbers é um array de inteiros):
Arrays.sort(luckyNumbers);
Reza a lenda que este método usa o QuickSort.
Outros métodos úteis para manipulação de arrays (todos da classe java.util.Arrays):
usa o algoritmo de busca binária para buscar o valor v dentro do array a. Se econtrado, seu índice é retornado. Do contrário é retornado um valor negativo r; o valor -r - 1 é o ponto em que v deverá ser inserido para manter o array a ordenado.
Parâmetros:
a: um array ORDENADO do tipo int, long, short, char, byte, float ou double.
v: um valor do mesmo tipo que os elementos de a.
atribui o valor v a todos os elementos do array a.