strings - java multidimensional arraylist




Erstellen Sie ein Array von ArrayList<String>-Elementen (8)

Ich möchte ein Array erstellen, das ArrayList <String> -Elemente enthält.

ich habe es versucht

ArrayList<String> name[] = new ArrayList<String>()[];

aber das scheint nicht zu funktionieren.


Array of ArrayLists, Beispiel mit Loops

//Declare
Object[] arrayLists = new Object[size];    

//Fill
for (int j=0; j < size; j++) {
     arrayLists[k]= generateAnArrayList(j);  //or whatnot
}

//Usage
for (int j=0; j < size; j++) {
    ArrayList<Long> al = (ArrayList<Long>) arrayLists[j];
    //do something here
}

Der richtige Weg ist:

ArrayList<String> name[] = new ArrayList[9];

Dies wird jedoch auch nicht funktionieren, da Sie kein Array mit einem generischen Typ erstellen können, was Sie versuchen, ist eine Matrix, und das sollte so gemacht werden:

String name[][];

Es gibt eine Möglichkeit, dies mit nur geringer Änderung Ihres Codes zu tun.

ArrayList<String>[] name = new ArrayList[10]; 

Dadurch erhalten Sie ein Array ArrayList.


Ich habe dies ohne einen Fehler versucht, obwohl ich ein Limit in das Array weniger als die Menge der Elemente hinzugefügt habe:

package Testes.src;

import java.util.ArrayList;
import java.util.List;

public class Testes {

    private List<String> name=new ArrayList<String>(1);

    public Testes(){
        for (int i = 1; i <= 100; i++) {
            name.add("Teste"+Integer.toString(i));
        }
        for (int i = 0; i < name.size(); i++) {
            System.out.println(name.get(i));
        }
    }
    public static void main(String [] args)
    {
        Testes t1=new Testes();
    }
}

Ich weiß, dass das ein bisschen alt ist, aber ich werde darauf für zukünftige Ansichten trotzdem antworten.

Wenn Sie wirklich eine ArrayList<String>[] -Struktur möchten, können Sie einfach eine Klasse erstellen, die ArrayList erweitert und ein Array dieser Klasse erstellt:

public class StringArrayList extends ArrayList<String>{}

Und in Ihrer Implementierung:

ArrayList<String> name[] = new StringArrayList[9];

Hier ist ein Beispiel:

package testspace.arrays;

import java.util.List;

public class TestStringArray {

    public static void main(String[] args) {
        List<String>[] arr = new StringArrayList[10];
        for(int i = 0; i < arr.length; i++){
            // CANNOT use generic 'new ArrayList<String>()'
            arr[i] = new StringArrayList(); 
            for(int j = 0; j < arr.length; j++){
                arr[i].add("list item #(" + j + "|" + i + ")");
            }
        }

        StringBuilder sb = new StringBuilder();
        for(final List<String> list : arr){
            for(final String str : list){
                sb.append(str + " ");
            }
            sb.append("\n");
        }
        System.out.println(sb.toString());
    }

}

HINWEIS Sie erhalten einen Laufzeitfehler, wenn Sie stattdessen arr[i] = new ArrayList<String>() verwenden: arr[i] = new ArrayList<String>()


Sie können dies versuchen:

ArrayList[] arr=new ArrayList[5];
for(int i=0;i<5;i++)
     arr[i]=new ArrayList<String>();
arr[1].add("35");
arr[1].add("ME");
arr[1].add("HELLO");
System.out.println(arr[1]);

Ausgabe:

[35, ME, HELLO]

Wenn Sie ein Array von ArrayList möchten, müssen Sie jede Position des Arrays einzeln initialisieren:

int size = 9; // 9 is just an example
// you can remove the annotation, but you'll be warned:
// Type safety: The expression of type ArrayList[] needs unchecked conversion 
// to conform to ArrayList<String>[]
@SuppressWarnings("unchecked")
ArrayList<String> name[] = new ArrayList[ size];
for( int i = 0; i < size; i++) {
    name[ i] = new ArrayList<String>();
}

// This is the not correct way
ArrayList<String> name[] = new ArrayList<String>()[];

// This is the correct way
ArrayList<String> list[] = new ArrayList[2];

list[0] = new ArrayList();
list[1] = new ArrayList();

list[0].add("Some String 11");
list[0].add("Some String 22");

list[1].add("Some String 1111");
list[1].add("Some String 2222");




arraylist