El "mejor" manera de hacer esto de una manera eficaz sería:
List<MyClass> list = new ArrayList<MyClass>();
list.add(new MyClass("name", "address", 23));
list.add(new MyClass("name2", "address2", 45));
pesar de que requiere una gran cantidad de mecanografía, pero como puedas ver claramente que esto es más efficient
Otra alternativa sería utilizar Google guava (no probado para la eficiencia):
ArrayList<MyClass> list = new ArrayList<MyClass>(
new MyClass("name", "address", 23),
new MyClass("name2", "address2", 45));
La importación requerida es import static com.google.common.collect.Lists.newArrayList;
También, se puede utilizar el doble de inicialización apoyos como originalmente propuesto por @Rohit Jain: -
List<MyClass> list = new ArrayList<MyClass>() {
{
add(new MyClass("name", "address", 23));
add(new MyClass("name2", "address2", 45));
}
};
Como se puede ver que, inner braces
es igual que un bloque de initializer
, que se utiliza para inicializar el list
de una sola vez ..
nota del punto y coma al final de su double-braces
también en cuenta el último método tiene algunas desventajas como se discutió here .
Las clases en Java se deben nombrar como 'MyClass'. –