Como criar uma nova lista em Java
- Criar uma Nova Lista Vazia em Java
- Crie uma nova lista não vazia em Java
- Criar uma Lista Não-Vazia de Tamanho Fixo em Java
Este tutorial irá discutir métodos para criar diferentes tipos de listas em Java.
List
em Java é uma interface e é implementada por ArrayList
, LinkedList
, Vector
e Stack
. Ela fornece uma coleção ordenada de objetos. O usuário tem controle preciso sobre onde na lista cada elemento é inserido. O usuário pode acessar elementos por seu índice inteiro (posição na lista) e procurar por elementos na lista. Além disso, as Listas também permitem que elementos duplicados sejam armazenados.
Criar uma Nova Lista Vazia em Java
Como a List
é uma interface, não podemos criar um objeto de Lista diretamente. Entretanto, podemos criar objetos das classes que implementam a interface Listar: Lista de Array, Lista de links, Vetor e Stack. Aqui está uma maneira simples:
List myArrayList = new ArrayList();
List myLinkedList = new LinkedList();
List myVector = new Vector();
List myStack = new Stack();
Estes tipos de Listas não têm um tipo de dado específico e podem conter qualquer tipo de objetos e valores. Vamos tentar criá-las em Java e adicionar alguns valores a elas.
import java.util.*;
public class myClass {
public static void main(String args[]) {
// ArrayList
List myArrayList = new ArrayList();
myArrayList.add(1);
myArrayList.add(2);
myArrayList.add("three");
System.out.println("ArrayList: " + myArrayList);
// LinkedList
List myLinkedList = new LinkedList();
myLinkedList.add(4);
myLinkedList.add(5);
myLinkedList.add("six");
System.out.println("LinkedList: " + myLinkedList);
// Stack
List myStack = new Stack();
myStack.add(7);
myStack.add(8);
myStack.add("nine");
System.out.println("Stack: " + myStack);
}
}
Os códigos acima resulta:
ArrayList: [1, 2, three]
LinkedList: [4, 5, six]
Stack: [7, 8, nine]
Podemos ver que adicionamos valores int
e String
às listas sem nenhum erro.
É possível especificar o tipo de dados de modo que somente valores desse tipo em particular possam ser armazenados. Vamos tentar outro exemplo.
import java.util.*;
public class myClass {
public static void main(String args[]) {
// ArrayList
List<Integer> myArrayList = new ArrayList<>();
myArrayList.add(1);
myArrayList.add(2);
myArrayList.add("three");
System.out.println("ArrayList: " + myArrayList);
}
}
O código acima resulta no seguinte erro.
> /myClass.java:9: error: incompatible types: String cannot be converted to Integer
> myArrayList.add("three");
É porque ao criar o objeto ArrayList
, especificamos o tipo de dados a ser Integer
; portanto, ele não aceitará nenhum outro tipo de dados.
Crie uma nova lista não vazia em Java
Discutimos como criar objetos da Lista vazia e depois adicionar objetos à lista. Agora vamos ver outra maneira de criar uma Lista com objetos dentro dela.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<String> list = new ArrayList<String>() {
{
add("a");
add("b");
}
};
System.out.println("ArrayList: " + list);
}
}
O código acima sai:
ArrayList: [a, b]
Criar uma Lista Não-Vazia de Tamanho Fixo em Java
Também podemos criar uma lista não vazia de tamanho fixo. Se assim for, operações como add
, remove
não serão suportadas.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
System.out.println("ArrayList: " + list);
}
}
O código acima sai:
ArrayList: [1, 2]
Vamos ver o que acontece se tentarmos adicionar outro elemento a esta lista.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
list.add(3);
System.out.println("ArrayList: " + list);
}
}
O código acima dá o seguinte erro, pois não permite operações como add
, remove
etc:
> Exception in thread "main" java.lang.UnsupportedOperationException
> at java.base/java.util.AbstractList.add(AbstractList.java:153)
> at java.base/java.util.AbstractList.add(AbstractList.java:111)
> at myClass.main(myClass.java:6)
Entretanto, você pode alterar o valor em qualquer posição neste tipo de lista.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
System.out.println("Initial ArrayList: " + list);
list.set(1, 3);
System.out.println("Changed ArrayList: " + list);
}
}
O código acima sai:
Initial ArrayList: [1, 2]
Changed ArrayList: [1, 3]
Agora sabemos como criar diferentes tipos de Listas em Java.