760 Stimmen

Liste in Java in Array umwandeln

Wie kann ich eine List zu einer Array in Java?

Prüfen Sie den unten stehenden Code:

ArrayList<Tienda> tiendas;
List<Tienda> tiendasList; 
tiendas = new ArrayList<Tienda>();

Resources res = this.getBaseContext().getResources();
XMLParser saxparser =  new XMLParser(marca,res);

tiendasList = saxparser.parse(marca,res);
tiendas = tiendasList.toArray();

this.adaptador = new adaptadorMarca(this, R.layout.filamarca, tiendas);
setListAdapter(this.adaptador);  

Ich muss das Array auffüllen tiendas mit den Werten von tiendasList .

19 Stimmen

ArrayList ist kein Array. Tienda[] würde ein Array sein.

1voto

John S. Punkte 606

Das ist ein Werk. Irgendwie.

public static Object[] toArray(List<?> a) {
    Object[] arr = new Object[a.size()];
    for (int i = 0; i < a.size(); i++)
        arr[i] = a.get(i);
    return arr;
}

Dann die Hauptmethode.

public static void main(String[] args) {
    List<String> list = new ArrayList<String>() {{
        add("hello");
        add("world");
    }};
    Object[] arr = toArray(list);
    System.out.println(arr[0]);
}

0voto

Hans Punkte 1836

Für ArrayList funktioniert das Folgende:

ArrayList<Foo> list = new ArrayList<Foo>();

//... add values

Foo[] resultArray = new Foo[list.size()];
resultArray = list.toArray(resultArray);

0voto

MUSTKEEM MANSURI Punkte 211

Das Beispiel stammt von dieser Seite: http://www.java-examples.com/copy-all-elements-java-arraylist-object-array-example

import java.util.ArrayList;

public class CopyElementsOfArrayListToArrayExample {

  public static void main(String[] args) {
    //create an ArrayList object
    ArrayList arrayList = new ArrayList();

    //Add elements to ArrayList
    arrayList.add("1");
    arrayList.add("2");
    arrayList.add("3");
    arrayList.add("4");
    arrayList.add("5");

    /*
      To copy all elements of java ArrayList object into array use
      Object[] toArray() method.
    */

    Object[] objArray = arrayList.toArray();

    //display contents of Object array
    System.out.println("ArrayList elements are copied into an Array.
                                                  Now Array Contains..");
    for(int index=0; index < objArray.length ; index++)
      System.out.println(objArray[index]);
  }
}

/*
Output would be
ArrayList elements are copied into an Array. Now Array Contains..
1
2
3
4
5

3 Stimmen

Bitte kopieren Sie nicht einfach die Arbeit anderer Leute als Ihre eigene, ohne sie zu nennen. java-examples.com/

0voto

Sie können toArray() api wie folgt verwenden,

ArrayList<String> stringList = new ArrayList<String>();
stringList.add("ListItem1");
stringList.add("ListItem2");
String[] stringArray = new String[stringList.size()];
stringArray = stringList.toArray(stringList);

Werte aus dem Array sind,

for(String value : stringList)
{
    System.out.println(value);
}

-1voto

Manny Vellon Punkte 23

Dies (Ondrejs Antwort):

Foo[] array = list.toArray(new Foo[0]);

Das ist die häufigste Redewendung, die ich sehe. Diejenigen, die vorschlagen, dass Sie die tatsächliche Listengröße anstelle von "0" verwenden, verstehen nicht, was hier passiert. Der toArray-Aufruf kümmert sich nicht um die Größe oder den Inhalt des gegebenen Arrays - er braucht nur seinen Typ. Es wäre besser gewesen, wenn er einen tatsächlichen Typ genommen hätte, in diesem Fall wäre "Foo.class" viel klarer gewesen. Ja, dieses Idiom erzeugt ein Dummy-Objekt, aber die Einbeziehung der Listengröße bedeutet nur, dass Sie ein größeres Dummy-Objekt erzeugen. Auch hier wird das Objekt in keiner Weise verwendet; es ist nur der Typ, der benötigt wird.

20 Stimmen

Sie müssen sich den Quellcode ansehen. Wenn Sie new Foo[0] dann das Array new Foo[0] wird ignoriert und es wird ein neues Array mit der richtigen Größe erstellt. Wenn Sie new Foo[list.size()] dann das Array new Foo[list.size()] wird gefüllt und es wird kein weiteres Array erstellt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X