una tabla para obtener llenar lista item datos con como codigo añadir java list collections set

java - tabla - ¿Cómo obtener el primer elemento de la Lista o Conjunto?



llenar tabla con una lista java (9)

Conjunto

set.toArray()[0];

Lista

list.get(0);

Me gustaría saber si puedo obtener el primer elemento de una lista o conjunto. ¿Qué método utilizar?


En Java> = 8 también puedes usar la API de transmisión:

Optional<String> first = set.stream().findFirst();

(Útil si el Conjunto / Lista puede estar vacío.)


Esta no es una respuesta exacta a esta pregunta, pero en caso de que los objetos se clasifiquen, SortedSet tiene un método first ():

SortedSet<String> sortedSet = new TreeSet<String>(); sortedSet.add("2"); sortedSet.add("1"); sortedSet.add("3"); String first = sortedSet.first(); //first="1"

Los objetos ordenados deben implementar la interfaz Comparable (como lo hace String)


Me sorprende que nadie haya sugerido aún una solución de guayaba:

com.google.common.collect.Iterables.get(collection, 0) // or com.google.common.collect.Iterables.get(collection, 0, defaultValue) // or com.google.common.collect.Iterables.getFirst(collection, defaultValue)

o si esperas elemento único:

com.google.common.collect.Iterables.getOnlyElement(collection, defaultValue) // or com.google.common.collect.Iterables.getOnlyElement(collection)


Puede utilizar el método de obtención (índice) para acceder a un elemento desde una lista.

Los conjuntos, por definición, simplemente contienen elementos y no tienen un orden particular. Por lo tanto, no hay un "primer" elemento que pueda obtener, pero es posible recorrerlo con iterador (con el uso de cada bucle) o convertirlo en una matriz con el método toArray ().


Supongamos que tiene una List<String> strings que quiere que aparezca el primer elemento.

Hay varias maneras de hacer eso:

Java (pre-8):

String firstElement = null; if (!strings.isEmpty() && strings.size() > 0) { firstElement = strings.get(0); }

Java 8:

Optional<String> firstElement = strings.stream().findFirst();

Guayaba

String firstElement = Iterables.getFirst(strings, null);

Apache commons (4+)

String firstElement = (String) IteratorUtils.get(strings, 0);

Apache commons (antes de 4)

String firstElement = (String) CollectionUtils.get(strings, 0);

Seguido por o encapsulado dentro de los controles apropiados o bloques try-catch.

Kotlin:

En Kotlin, ambos Arrays y la mayoría de las Collections (por ejemplo: Lista) tienen una first llamada de método. Así que tu código se vería algo como esto

para una lista:

val stringsList: List<String?> = listOf("a", "b", null) val first: String? = stringsList.first()

para un Array:

val stringArray: Array<String?> = arrayOf("a", "b", null) val first: String? = stringArray.first()


Ver el javadoc

de la List

list.get(0);

o Set

set.iterator().next();

y verifique el tamaño antes de usar los métodos anteriores invocando isEmpty()

!list_or_set.isEmpty()


java8 y más

Set<String> set = new TreeSet<>(); set.add("2"); set.add("1"); set.add("3"); String first = set.stream().findFirst().get();

Esto le ayudará a recuperar el primer elemento de la lista o conjunto. Dado que el conjunto o la lista no está vacío ( get() en vacío opcional lanzará java.util.NoSuchElementException )

orElse() se puede usar como: (esto es solo una orElse() , no se recomienda)

String first = set.stream().findFirst().orElse(""); set.removeIf(String::isEmpty);

A continuación se muestra el enfoque apropiado:

Optional<String> firstString = set.stream().findFirst(); if(firstString.isPresent()){ String first = firstString.get(); }

Del mismo modo se puede recuperar el primer elemento de la lista.

Espero que esto ayude.


Collection c; Iterator iter = c.iterator(); Object first = iter.next();

(Esto es lo más cerca que estará de tener el "primer" elemento de un Set . Debe darse cuenta de que no tiene absolutamente ningún significado para la mayoría de las implementaciones de Set . Esto puede tener un significado para LinkedHashSet y TreeSet, pero no para HashSet).