Estoy tratando de pasar un array de strings como un argumento para el constructor de los Humedales de la clase;
No entiendo cómo agregar los elementos de matriz de cadena para la cadena de la matriz de la lista.

import java.util.ArrayList;

public class Wetland {
    private String name;
    private ArrayList<String> species;
    public Wetland(String name, String[] speciesArr) {
        this.name = name;
        for (int i = 0; i < speciesArr.length; i++) {
            species.add(speciesArr[i]);
        }
    }
}
InformationsquelleAutor robinhood91 | 2012-10-12

11 Comentarios

  1. 106

    Ya se han incorporado en el método para que: –

    List<String> species = Arrays.asList(speciesArr);

    NOTA: – Usted debe utilizar List<String> species no ArrayList<String> species.

    Arrays.asList devuelve un diferente ArrayList -> java.util.Arrays.ArrayList que no puede ser typecasted a java.util.ArrayList.

    Entonces usted tendría que usar addAll método, que no es tan bueno. Tan sólo utilizar List<String>

    NOTA: – La lista devuelta por Arrays.asList es de un tamaño fijo de la lista. Si quieres añadir algo a la lista, usted necesita para crear otra lista, y el uso addAll para agregar elementos a la misma. Así, entonces es mejor ir con la 2ª manera siguiente: –

        String[] arr = new String[1];
        arr[0] = "rohit";
        List<String> newList = Arrays.asList(arr);
    
        //Will throw `UnsupportedOperationException
        //newList.add("jain"); //Can't do this.
    
        ArrayList<String> updatableList = new ArrayList<String>();
    
        updatableList.addAll(newList); 
    
        updatableList.add("jain"); //OK this is fine. 
    
        System.out.println(newList);       //Prints [rohit]
        System.out.println(updatableList); //Prints [rohit, jain]
    • No se devuelve el Objeto, sino una Lista de<T>, donde T es el tipo de matriz que pase. Consulte docs.oracle.com/javase/7/docs/api/java/util/…
    • Creo que usted debe tratar este código. Y veo a los doctores me dieron el enlace..
    • Ahora creo que mi post es mucho más clara.
    • Usted puede convertir de java.util.Arrays.ArrayList (resultado de Arrays.asList() a java.util.ArrayList.
    • Sí editado el post. ArrayList devuelto es diferente en asList método.
    • Pero como por su forma, después de almacenar los elementos de la especie, el usuario no será capaz de añadir() o remove() de cualquier elemento. Mejor guardarlo en algunos temp lista a continuación, añadir a la especie.
    • Sí, la lista devuelta por Arrays.asList es un fijo del tamaño de la lista.. A añadir algo, tenemos que conseguir un newlist con addAll método.
    • actualizado post. Ver 🙂
    • lo mismo que ya he mencionado en mi respuesta. nadie había señaló…todavía no votar ups. 🙂
    • Debe observarse que Collections.addAll() es un método preferido: El comportamiento de esta conveniencia método es idéntico al de c.addAll(Matrices.asList(elementos)), pero este método es probable que ejecutan mucho más rápido en la mayoría de las implementaciones. (Javadoc)
    • berezovskiy ‘ s respuesta es correcta .
    • supongamos que nuestra nueva matriz de cadena es arry2 y nuestra lista de cadenas, la que queremos añadir arry2 es list1.luego podemos agregar array (arry2) a la cadena de la lista (list1) como este,,,,,,,,,,,,, list1.addAll(Matrices.asList(arry2));
    • Esta línea debe ser cambiado a la Lista de especies = Arrays.asList(speciesArr);

  2. 14

    Yo prefiero esta,

    List<String> temp = Arrays.asList(speciesArr);
    species.addAll(temp);

    La razón es que las Matrices.asList() método creará un fijo del tamaño de la Lista. Así que si usted almacenar directamente en especie, entonces usted no será capaz de añadir ningún elemento más, todavía no es sólo de lectura. Usted seguramente puede editar sus artículos. Por lo tanto, tomar en temporal de la lista.

    Alternativa para esto es,

    Collections.addAll(species, speciesArr);

    En este caso, usted puede agregar, editar, eliminar sus elementos.

  3. 10

    Pensado que voy a añadir esta a la mezcla:

    Collections.addAll(result, preprocessor.preprocess(lines));

    Este es el cambio que Intelli recomienda.

    de los javadocs:

    HTML:

    Adds all of the specified elements to the specified collection.
    Elements to be added may be specified individually or as an array.
    The behavior of this convenience method is identical to that of
    <tt>c.addAll(Arrays.asList(elements))</tt>, but this method is likely
    to run significantly faster under most implementations.
     
    When elements are specified individually, this method provides a
    convenient way to add a few elements to an existing collection:
    <pre>
    Collections.addAll(flavors, "Peaches 'n Plutonium", "Rocky Racoon");
    </pre>

  4. 7

    Usted debe crear una instancia de su ArrayList antes de intentar agregar elementos:

    private List<String> species = new ArrayList<String>();
    • Que no es realmente lo que la pregunta está pidiendo.
    • Ok, pero es lo principal que ha ido mal.
  5. 6

    Matrices.asList es el puente entre la Matriz y de la colección de marco y devuelve un tamaño fijo de la Lista respaldada por la Matriz.

    species = Arrays.asList(speciesArr);
    • Las matrices.asList devuelve un objeto!
    • Devuelve List<T>
    • Si usted lee los docs docs.oracle.com/javase/6/docs/api/java/util/… dice devuelve List<T>
    • ¿Por qué no compila? Tengo que compilar? La única razón por la que pude ver no esta compilación es si usted está usando el mal Arrays o List clases.
  6. 3

    En Java 8, la sintaxis para esto simplifica en gran medida y puede ser utilizado para llevar a cabo esta transformación de manera sucinta.

    Tenga en cuenta, usted tendrá que cambiar su campo desde una aplicación concreta a la List interfaz para que esto funcione sin problemas.

    public class Wetland {
        private String name;
        private List<String> species;
        public Wetland(String name, String[] speciesArr) {
            this.name = name;
            species = Arrays.stream(speciesArr)
                            .collect(Collectors.toList());
        }
    }
  7. 2

    Arrays.asList() método devuelve simplemente List tipo

    char [] arr = { 'c','a','t'};    
    ArrayList<Character> chars = new ArrayList<Character>();

    Para agregar la matriz en la lista, primero se convierte a la lista y, a continuación, llamar a addAll

    List arrList = Arrays.asList(arr);
    chars.addAll(arrList);

    La siguiente línea será causa de error del compilador

    chars.addAll(Arrays.asList(arr));
  8. 1

    Arrays.asList es la mano de función disponibles en Java para convertir una variable de matriz a la Lista o Colección. Para una mejor pie considere el siguiente ejemplo:

    package com.stackoverflow.works;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class Wetland {
        private String name;
        private List<String> species = new ArrayList<String>();
    
        public Wetland(String name, String[] speciesArr) {
            this.name = name;
            this.species = Arrays.asList(speciesArr);
        }
    
        public void display() {
            System.out.println("Name: " + name);
            System.out.println("Elements in the List");
            System.out.println("********************");
            for (String string : species) {
                System.out.println(string);
            }
        }
    
        /*
         * @Description: Method to test your code
         */
        public static void main(String[] args) {
            String name = "Colors";
            String speciesArr[] = new String [] {"red", "blue", "green"};
            Wetland wetland = new Wetland(name, speciesArr);
            wetland.display();
        }
    
    }

    De salida:

    Cómo agregar elementos de una matriz de cadena a un array de strings lista?

  9. 1
    ArrayList<String> arraylist= new ArrayList<String>();
    
    arraylist.addAll( Arrays.asList("mp3 radio", "presvlake", "dizalica", "sijelice", "brisaci farova", "neonke", "ratkape", "kuka", "trokut")); 
    • Su trabajo….
  10. -2
    public class duplicateArrayList {
    
    
        ArrayList al = new ArrayList();
        public duplicateArrayList(Object[] obj) {
    
            for (int i = 0; i < obj.length; i++) {
    
                al.add(obj[i]);
            }
    
            Iterator iter = al.iterator();
            while(iter.hasNext()){
    
                System.out.print(" "+iter.next());
            }
        }
    
        public static void main(String[] args) {
    
    
        String[] str = {"A","B","C","D"};
    
        duplicateArrayList dd = new duplicateArrayList(str);
    
        }
    
    }

Dejar respuesta

Please enter your comment!
Please enter your name here