¿Hay algún método de utilidad en alguna parte que pueda hacer esto en 1 línea? No puedo encontrarlo en ningún lugar en Collections
o List
.
public List<String> stringToOneElementList(String s) {
List<String> list = new ArrayList<String>();
list.add(s);
return list;
}
No quiero reinventar la rueda a menos que planee ponerle llantas elegantes.
Bueno ... el tipo puede ser T
, y no String
. Pero usted consigue el punto. (con todas las comprobaciones nulas, comprobaciones de seguridad ... etc)
List
La forma más fácil, que yo sepa, es crear un elemento único de tamaño fijo List
con Arrays.asList(T...)
like
// Returns a List backed by a varargs T.
return Arrays.asList(s);
List
Si necesita variar en tamaño, puede construir un ArrayList
tamaño fijo List
como
return new ArrayList<String>(Arrays.asList(s));
y (en Java 7+) puede usar el operador de diamante<>
para hacerlo
return new ArrayList<>(Arrays.asList(s));
Las colecciones pueden devolver una lista con un solo elemento con la lista inmutable:
Collections.singletonList(s)
El beneficio aquí es que el análisis de código IDE no advierte sobre las llamadas asList (..) de un solo elemento.
Collections.singletonList(object)
la lista creada por este método es inmutable.
Puede utilizar el método de utilidad Arrays.asList
y alimentar ese resultado en un nuevo ArrayList
.
List<String> list = new ArrayList<String>(Arrays.asList(s));
Otras opciones:
List<String> list = new ArrayList<String>(Collections.nCopies(1, s));
y
List<String> list = new ArrayList<String>(Collections.singletonList(s));
ArrayList(Collection)
constructor.Arrays.asList
método.Collections.nCopies
método.Collections.singletonList
método.Con Java 7+, puede usar el "operador de diamante", reemplazando new ArrayList<String>(...)
por new ArrayList<>(...)
.
Java 9
Si está usando Java 9+, puede usar el List.of
método :
List<String> list = new ArrayList<>(List.of(s));
Independientemente del uso de cada opción anterior, puede optar por no usar el new ArrayList<>()
contenedor si no necesita que su lista sea mutable.
Con Java 8 Streams:
Stream.of(object).collect(Collectors.toList())
o si necesita un juego:
Stream.of(object).collect(Collectors.toSet())
Todas las otras respuestas usan Arrays.asList()
, que devuelve una lista no modificable ( UnsupportedOperationException
se lanza una si intenta agregar o eliminar un elemento). Para obtener una lista mutable, puede envolver la lista devuelta en una nueva ArrayList
como señalan un par de respuestas, pero una solución más limpia es usar Lists.newArrayList () de Guava (disponible desde al menos Guava 10 , lanzado en 2011).
Por ejemplo:
Lists.newArrayList("Blargle!");
Muy simple:
Arrays.asList("Hi!")
Al ver que se menciona a Guava, pensé que también sugeriría Eclipse Collections (anteriormente conocido como GS Collections).
Todos los ejemplos siguientes devuelven a List
con un solo artículo.
Lists.mutable.of("Just one item");
Lists.mutable.with("Or use with");
Lists.immutable.of("Maybe it must be immutable?");
Lists.immutable.with("And use with if you want");
Existen métodos similares para otras colecciones.
Otra alternativa más es la inicialización de doble llave , p. Ej.
new ArrayList<String>() {{ add(s); }};
pero es ineficaz y oscuro . Por tanto, solo apto:
La estrella de HGTV, Christina Hall, revela que le diagnosticaron envenenamiento por mercurio y plomo, probablemente debido a su trabajo como manipuladora de casas.
Recientemente salió a la luz un informe policial que acusa a la estrella de 'Love Is Blind', Brennon, de violencia doméstica. Ahora, Brennon ha respondido a los reclamos.
Conozca cómo Wynonna Judd se dio cuenta de que ahora es la matriarca de la familia mientras organizaba la primera celebración de Acción de Gracias desde que murió su madre, Naomi Judd.
Descubra por qué un destacado experto en lenguaje corporal cree que es fácil trazar "tales paralelismos" entre la princesa Kate Middleton y la princesa Diana.
Los inodoros arrojan columnas de aerosol invisibles con cada descarga. ¿Como sabemos? La prueba fue capturada por láseres de alta potencia.
Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?
The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!
¿Sigue siendo efectivo ese lote de repelente de insectos que te quedó del verano pasado? Si es así, ¿por cuánto tiempo?
Anteriormente, Kotaku informó que un hotel Godzilla se estaba abriendo en Tokio este abril. Junto al hotel, estaba programada la aparición de una enorme cabeza de 'Zilla, pero todo lo que hemos visto fueron imágenes conceptuales computarizadas.
Foto: Getty Desde que lanzó The Boring Company hace un año, Elon Musk ha mencionado varios sitios de construcción posibles para el negocio de perforación de túneles y ha descartado una vaga referencia a una aprobación gubernamental "verbal" para un túnel Hyperloop que conecta la ciudad de Nueva York y Washington. , CC. Pero ahora sabemos que al menos un alcalde quiere que Musk perfore un agujero debajo de su ciudad.
Tapas elásticas de silicona de Tomorrow's Kitchen, paquete de 12 | $14 | Amazonas | Código promocional 20OFFKINJALids son básicamente los calcetines de la cocina; siempre perdiéndose, dejando contenedores huérfanos que nunca podrán volver a cerrarse. Pero, ¿y si sus tapas pudieran estirarse y adaptarse a todos los recipientes, ollas, sartenes e incluso frutas en rodajas grandes que sobran? Nunca más tendrás que preocuparte por perder esa tapa tan específica.
Hemos pirateado algunas ciudades industriales en esta columna, como Los Ángeles y Las Vegas. Ahora es el momento de una ciudad militar-industrial-compleja.
El equipo está a la espera de las medallas que ganó en los Juegos Olímpicos de Invierno de 2022 en Beijing, ya que se está resolviendo un caso de dopaje que involucra a la patinadora artística rusa Kamila Valieva.
Miles de compradores de Amazon recomiendan la funda de almohada de seda Mulberry, y está a la venta en este momento. La funda de almohada de seda viene en varios colores y ayuda a mantener el cabello suave y la piel clara. Compre las fundas de almohada de seda mientras tienen hasta un 46 por ciento de descuento en Amazon
El jueves se presentó una denuncia de delito menor amenazante agravado contra Joe Mixon.
El Departamento de Policía de Lafayette comenzó a investigar a un profesor de la Universidad de Purdue en diciembre después de recibir varias denuncias de un "hombre sospechoso que se acercaba a una mujer".
Al igual que el mundo que nos rodea, el lenguaje siempre está cambiando. Mientras que en eras anteriores los cambios en el idioma ocurrían durante años o incluso décadas, ahora pueden ocurrir en cuestión de días o incluso horas.
Estoy de vuelta por primera vez en seis años. No puedo decirte cuánto tiempo he estado esperando esto.
“And a river went out of Eden to water the garden, and from thence it was parted and became into four heads” Genesis 2:10. ? The heart is located in the middle of the thoracic cavity, pointing eastward.
Creo, un poco tarde en la vida, en dar oportunidades a la gente. Generosamente.