Cómo hacer una nueva lista en Java
Creamos un Set
como:
Set myset = new HashSet()
¿Cómo creamos un List
en Java?
List myList = new ArrayList();
o con genéricos ( Java 7 o posterior)
List<MyType> myList = new ArrayList<>();
o con genéricos (versiones antiguas de Java)
List<MyType> myList = new ArrayList<MyType>();
Además, si desea crear una lista que contenga elementos (aunque tendrá un tamaño fijo):
List<String> messages = Arrays.asList("Hello", "World!", "How", "Are", "You");
Permítanme resumir y agregar algo:
JDK
1. new ArrayList<String>();
2. Arrays.asList("A", "B", "C")
Guayaba
1. Lists.newArrayList("Mike", "John", "Lesly");
2. Lists.asList("A","B", new String [] {"C", "D"});
Lista inmutable
1. Collections.unmodifiableList(new ArrayList<String>(Arrays.asList("A","B")));
2. ImmutableList.builder() // Guava
.add("A")
.add("B").build();
3. ImmutableList.of("A", "B"); // Guava
4. ImmutableList.copyOf(Lists.newArrayList("A", "B", "C")); // Guava
Lista inmutable vacía
1. Collections.emptyList();
2. Collections.EMPTY_LIST;
Lista de personajes
1. Lists.charactersOf("String") // Guava
2. Lists.newArrayList(Splitter.fixedLength(1).split("String")) // Guava
Lista de números enteros
Ints.asList(1,2,3); // Guava
En Java 8
Para crear una lista no vacía de tamaño fijo (no se admiten operaciones como agregar, eliminar, etc.):
List<Integer> list = Arrays.asList(1, 2); // but, list.set(...) is supported
Para crear una lista mutable no vacía:
List<Integer> list = new ArrayList<>(Arrays.asList(3, 4));
En Java 9
Usando nuevos List.of(...)
métodos de fábrica estáticos:
List<Integer> immutableList = List.of(1, 2);
List<Integer> mutableList = new ArrayList<>(List.of(3, 4));
En Java 10
Usando la inferencia de tipo de variable local :
var list1 = List.of(1, 2);
var list2 = new ArrayList<>(List.of(3, 4));
var list3 = new ArrayList<String>();
Y siga las mejores prácticas...
No uses tipos crudos
Desde Java 5, los genéricos han sido parte del lenguaje; debes usarlos:
List<String> list = new ArrayList<>(); // Good, List of String
List list = new ArrayList(); // Bad, don't do that!
Programa para interfaces
Por ejemplo, programe en la List
interfaz:
List<Double> list = new ArrayList<>();
En lugar de:
ArrayList<Double> list = new ArrayList<>(); // This is a bad idea!
Primero lee esto , luego lee esto y esto . 9 de cada 10 veces utilizarás una de esas dos implementaciones.
De hecho, basta con leer la Guía de Sun sobre el marco de colecciones .
Desde Java 7, tienes inferencia de tipos para la creación de instancias genéricas , por lo que no es necesario duplicar parámetros genéricos en el lado derecho de la asignación:
List<String> list = new ArrayList<>();
Una lista de tamaño fijo se puede definir como:
List<String> list = Arrays.asList("foo", "bar");
Para listas inmutables puedes usar la biblioteca Guava :
List<String> list = ImmutableList.of("foo", "bar");