Arrays

Arrays.utils

Arrays.utils

Na classe de Arrays possuem métodos que nos permite manipular os vetores com mais facilidade. Vamos conhecer alguns desses métodos?

asList()

Converte o Array no tipo lista de uma Collections.

Fruta[] frutas = {new Fruta("Abacate", "Verde"), new Fruta("Maçã", "Vermelha"),
                new Fruta("Tangerina", "Laranja"), new Fruta("Melão", "Amarelo")};

System.out.println(Arrays.asList(frutas));

// A saída desse código será:
// [Fruta{nome='Abacate', cor='Verde'}, Fruta{nome='Maçã', cor='Vermelha'}, Fruta{nome='Tangerina', cor='Laranja'}, Fruta{nome='Melão', cor='Amarelo'}]

Porém, esse método só funciona com Objetos e não com tipos primitivos.

copyOfRange

Faz uma cópia de um intervalo de um array e transforma em um novo array.

String[] tecnologias = {"Java", "Spring", "JDBC", "JPA", "Hibernate"};

System.out.println(tecnologias); // A saída será o endereço de memória: [Ljava.lang.String;@1b28cdfa
System.out.println((Arrays.copyOfRange(tecnologias, 0,2))); // A saída será o endereço de memória: [Ljava.lang.String;@eed1f14

equals

Esse método é bastante utilizado e retorna true (verdadeiro) se os arrays informados são iguais.

int[] numeros = {0, 1, 2, 3, 4, 5};
int[] numerosPares = {0, 2, 4};

System.out.println(numerosPares.equals(numeros)); // Sem nenhum mistério, a saída é false

fill

Este método preenche todos os elementos de um array com um valor específico.

int[] numeros = new int[5];
Arrays.fill(numeros, 10);

System.out.println(Arrays.toString(numeros)); // Saída: [10, 10, 10, 10, 10]

Ou seja, criamos um Array contendo 5 elementos e preenchemos esse mesmo Array com o número que passamos no método, 10.

parallelSort

Este método realiza a ordenação em paralelo, aproveitando os recursos de múltiplos núcleos do processador para uma ordenação mais rápida em grandes conjuntos de dados.

int[] numeros = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
Arrays.sort(numeros);

System.out.println(Arrays.toString(numeros)); // Saída: [1, 1, 2, 3, 3, 4, 5, 5, 6, 9]

sort

Ordena um array em ordem natural.

double[] sequencia = {5.2, 8.6, 7.6, 5.4, 1.1, 3.0};
Arrays.sort(sequencia);

System.out.println(Arrays.toString(sequencia)); // Saída: [1.1, 3.0, 5.2, 5.4, 7.6, 8.6]

toString

Retorna uma representação de cadeia de caracteres do conteúdo de um Array.

String[] cores = {"vermelho", "verde", "azul"};
System.out.println(Arrays.toString(cores)); // Saída: [vermelho, verde, azul]

Interface Iterator

A Interface Iterator é uma ferramenta para percorrer e acessar os elementos ma coleção de dados, como um array. Fornece métodos simples para navegar pelas coleções de forma sequencial e acessar elementos de forma individual. Se torna bastante útil quando não sabemos a estrutura interna da coleção ou quando não podemos acessar os elementos diretamente através dos índices. Os métodos hasNext() e next() permite a iteração nos elementos da coleção de maneira eficiente e segura. Além disso, o Iterator possibilita a remoção de elementos durante a iteração, fornecendo uma maneira flexível de modificar a coleção enquanto a percorremos.

String[] cores = {"vermelho", "verde", "azul"};
Iterator<String> iterator = Arrays.asList(cores).iterator();

while (iterator.hasNext()) {
System.out.println(iterator.next());

}
// Saída:
// vermelho
// verde
// azul

Enquanto método hasNext() for verdadeiro, irá imprimir o próximo item da lista de Cores.

Stream API

A partir do Java 8, a Stream API permite processar coleções de dados de maneira declarativa e funcional. As operações da Stream podem ser divididas em duas categorias: operações intermediárias, que retornam uma nova Stream e podem ser encadeadas, e operações terminais, que produzem um resultado final, como uma lista ou um valor singular. A Stream API facilita a realização de operações como filtragem, mapeamento, ordenação e redução em coleções de dados de maneira eficiente e expressiva.

String[] cores = {"vermelho", "verde", "azul"};
Arrays.stream(cores)
.forEach(System.out::println);

// Saída:
// vermelho
// verde
// azul

Aqui vemos uma nova possibilidade para o for each usando Stream.

ℹ️ Informação
Para saber mais sobre outros métodos da classe Arrays consulte a documentação, deixamos nas referências 😊.

Referências

Material Complementar