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.
Para saber mais sobre outros métodos da classe Arrays consulte a documentação, deixamos nas referências 😊.
Referências
- https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html{:target="_blank"}
- https://www.freecodecamp.org/portuguese/news/metodos-de-arrays-em-java-como-imprimir-um-array-em-java/{:target="_blank"}
- https://www.baeldung.com/java-util-arrays{:target="_blank"}
Material Complementar