obtener objetos metodos llenar imprimir elemento como clase aƱadir java arrays list arraylist blackjack

java - objetos - Convierta una matriz en una ArrayList



metodos arraylist java (5)

Si puedes, usa guayaba

Vale la pena señalar la forma de Guava, que simplifica enormemente estas travesuras:

Uso

Para una lista inmutable

Use la clase copyOf() y copyOf() métodos de fábrica of() y copyOf() (los elementos no pueden ser nulos) :

List<String> il = ImmutableList.of("string", "elements"); // from varargs List<String> il = ImmutableList.copyOf(aStringArray); // from array

Para una lista mutable

Use la clase Lists y sus newArrayList() métodos de fábrica newArrayList() :

List<String> l1 = Lists.newArrayList(anotherListOrCollection); // from collection List<String> l2 = Lists.newArrayList(aStringArray); // from array List<String> l3 = Lists.newArrayList("or", "string", elements"); // from varargs

Tenga en cuenta también los métodos similares para otras estructuras de datos en otras clases, por ejemplo en Sets .

¿Por qué guayaba?

La principal atracción podría ser reducir el desorden debido a los genéricos para la seguridad del tipo, ya que el uso de los métodos de la fábrica de guayaba permite que los tipos se infieran la mayor parte del tiempo. Sin embargo, este argumento contiene menos agua desde que Java 7 llegó con el nuevo operador de diamantes.

Pero no es la única razón (y Java 7 aún no está en todas partes): la sintaxis abreviada también es muy útil, y los iniciadores de métodos, como se ve arriba, permiten escribir un código más expresivo. Lo haces en una llamada de guayaba lo que lleva 2 con las colecciones de Java actuales.

Si no puedes ...

Para una lista inmutable

Use los métodos de fábrica Arrays.asList() y Collections.unmodifiableList() JDK:

List<String> l1 = Arrays.asList(anArrayOfElements); List<String> l2 = Arrays.asList("element1", "element2");

Tenga en cuenta que:

  • El tipo devuelto para asList() dice ArrayList , pero no es java.util.ArrayList . Es un tipo interno, que imita ArrayList pero en realidad hace referencia directamente a la matriz anterior y prohíbe algunas modificaciones.
  • unmodifiableList() bloquea adicionalmente los cambios en la vista devuelta de la lista original.

Vea el próximo paso si necesita una lista mutable.

Para una lista mutable

Lo mismo que arriba, pero envuelto con un java.util.ArrayList real:

List<String> l1 = new ArrayList<String>(Arrays.asList(array)); // Java 1.5 to 1.6 List<String> l1b = new ArrayList<>(Arrays.asList(array)); // Java 1.7+ List<String> l2 = new ArrayList<String>(Arrays.asList("a", "b")); // Java 1.5 to 1.6 List<String> l2b = new ArrayList<>(Arrays.asList("a", "b")); // Java 1.7+

Con fines educativos: The Good ol ''Manual Way

// for Java 1.5+ static <T> List<T> arrayToList(final T[] array) { final List<T> l = new ArrayList<T>(array.length); for (final T s : array) { l.add(s); } return (l); } // for Java < 1.5 (no generics, no compile-time type-safety, boo!) static List arrayToList(final Object[] array) { final List l = new ArrayList(array.length); for (int i = 0; i < array.length; i++) { l.add(array[i]); } return (l); }

Esta pregunta ya tiene una respuesta aquí:

Tengo muchos problemas para convertir una matriz en una ArrayList en Java. Esta es mi matriz en este momento:

Card[] hand = new Card[2];

"mano" contiene una variedad de "Tarjetas". ¿Cómo se vería esto como una ArrayList ?


Como ArrayList esa línea sería

import java.util.ArrayList; ... ArrayList<Card> hand = new ArrayList<Card>();

Para usar ArrayList tienes que hacer

hand.get(i); //gets the element at position i hand.add(obj); //adds the obj to the end of the list hand.remove(i); //removes the element at position i hand.add(i, obj); //adds the obj at the specified index hand.set(i, obj); //overwrites the object at i with the new obj

Lea también este http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html


Esto te dará una lista.

List<Card> cardsList = Arrays.asList(hand);

Si quieres una lista de arrays, puedes hacer

ArrayList<Card> cardsList = new ArrayList<Card>(Arrays.asList(hand));


declarar la lista (e inicializarla con una lista de matrices vacía)

List<Card> cardList = new ArrayList<Card>();

agregando un elemento:

Card card; cardList.add(card);

iterando sobre los elementos:

for(Card card : cardList){ System.out.println(card); }


List<Card> list = new ArrayList<Card>(Arrays.asList(hand));