Pregunta ¿Cómo convertir una cadena en una ArrayList?


En mi Cadena, puedo tener un número arbitrario de palabras que están separadas por comas. Quería que cada palabra se agregara a una ArrayList. P.ej.:

String s = "a,b,c,d,e,.........";

75
2017-09-08 12:16


origen


Respuestas:


Pruebe algo como

List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));

Manifestación:

String s = "lorem,ipsum,dolor,sit,amet";

List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));

System.out.println(myList);  // prints [lorem, ipsum, dolor, sit, amet]

Esta publicación ha sido reescrita como un artículo aquí.


194
2017-09-08 12:18



 String s1="[a,b,c,d]";
 String replace = s1.replace("[","");
 System.out.println(replace);
 String replace1 = replace.replace("]","");
 System.out.println(replace1);
 List<String> myList = new ArrayList<String>(Arrays.asList(replace1.split(",")));
 System.out.println(myList.toString());

26
2017-09-08 12:28



En Java 9, usando List#of


6
2017-10-07 14:12



Si quieres convertir un cuerda en un Lista de arreglo prueba esto:

public ArrayList<Character> convertStringToArraylist(String str) {
    ArrayList<Character> charList = new ArrayList<Character>();      
    for(int i = 0; i<str.length();i++){
        charList.add(str.charAt(i));
    }
    return charList;
}

Pero veo una matriz de cadenas en su ejemplo, así que si quiere convertir una conjunto de cadenas dentro Lista de arreglo utilizar esta:

public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
    ArrayList<String> stringList = new ArrayList<String>();
    for (String s : strArr) {
        stringList.add(s);
    }
    return stringList;
}

2
2017-09-08 12:30



Si está importando o tiene una matriz (de tipo cadena) en su código y tiene que convertirla en una lista de arrays (cadena de conversación), entonces el uso de colecciones es mejor. Me gusta esto:

String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then

List allEds = new ArrayList(); Collections.addAll(allEds, array1);

2
2017-12-04 12:24



Opción 1:

List<String> list = Arrays.asList("hello");

Opcion 2:

List<String> list = new ArrayList<String>(Arrays.asList("hello"));

En mi opinión, Option1 es mejor porque

  1. podemos reducir la cantidad de objetos ArrayList que se crean de 2 a 1. asList método crea y devuelve un Objeto ArrayList.
  2. su rendimiento es mucho mejor (pero devuelve una lista de tamaño fijo).

Por favor refiérase a la documentación aquí


2
2018-05-08 16:42



Ok, voy a extender las respuestas aquí ya que muchas de las personas que vienen aquí quieren dividir la cadena por una espacio en blanco. Así es como se hace:

List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));

1
2018-06-26 11:04



Podrías usar:

List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());

Debería preguntarse si realmente necesita ArrayList en primer lugar. Muy a menudo, vas a filtrar la lista según criterios adicionales, para los cuales un Stream es perfecto. Es posible que desee un conjunto; es posible que desee filtrarlos por medio de otra expresión regular, etc. Java 8 proporciona esta extensión muy útil, por cierto, que funcionará en cualquier CharSequence: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence-. Como no necesita la matriz en absoluto, evite crearla así:

// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);

1
2017-10-07 13:55



Hagamos una pregunta: invierta una cadena. Haré esto usando stream (). Collect (). Pero primero voy a cambiar la cadena en una ArrayList.

    public class StringReverse1 {
    public static void main(String[] args) {

        String a = "Gini Gina  Proti";

        List<String> list = new ArrayList<String>(Arrays.asList(a.split("")));

        list.stream()
        .collect(Collectors.toCollection( LinkedList :: new ))
        .descendingIterator()
        .forEachRemaining(System.out::println);



    }}
/*
The output :
i
t
o
r
P


a
n
i
G

i
n
i
G
*/

0
2018-03-18 10:37