Você está aqui: Java ::: Pacote java.util ::: Collections, Coleções |
Como criar uma ArrayList somente leitura em Java usando Collections.unmodifiableList()Quantidade de visualizações: 683 vezes |
|
Nesta dica mostrarei como podemos usar o método unmodifiableList() da classe Collections para criar e retornar uma ArrayList somente leitura, ou seja, que não permite modificação de seus itens. Note que o argumento para o método Collections.unmodifiableList() é um objeto da interface List, e o retorno do método também é um objeto List. Veja o código completo para o exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Estudos{
public static void main(String args[]){
// vamos criar uma ArrayList de linguagens de programação
ArrayList<String> linguagens = new ArrayList<>();
// vamos adicionar quatro linguagens
linguagens.add("Java");
linguagens.add("Python");
linguagens.add("Delphi");
linguagens.add("Perl");
// vamos mostrar o conteúdo do ArrayList
System.out.println("Conteúdo do ArrayList: " + linguagens);
// vamos modificar o segundo elemento
linguagens.set(1, "Ruby");
System.out.println("Novo conteúdo do ArrayList: " + linguagens);
// agora vamos criar uma ArrayList somente leitura
List<String> somenteLeitura = Collections.unmodifiableList(linguagens);
// vamos testar se a nova ArrayList é realmente somente leitura
if (somenteLeitura.getClass().getName().contains("Unmodifiable")) {
System.out.println("A segunda ArrayList é somente leitura mesmo");
}
else{
System.out.println("A segunda ArrayList não é somente leitura");
}
// agora vamos tentar modificar o conteúdo da segunda ArrayList
somenteLeitura.set(1, "Pascal");
}
}
Ao executar este código Java nós teremos o seguinte resultado: Conteúdo do ArrayList: [Java, Python, Delphi, Perl] Novo conteúdo do ArrayList: [Java, Ruby, Delphi, Perl] A segunda ArrayList é somente leitura mesmo Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableList.set(Collections.java:1311) at estudos.Estudos.main(Estudos.java:37) Note o erro java.lang.UnsupportedOperationException ao tentarmos modificar o conteúdo da segunda ArrayList. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






