È possibile creare un ArrayList n-dimensionale, proprio come un array n-dimensionale, inserendo elenchi di array in elenchi di array.
Ecco un esempio con 3 dimensioni per mostrare il concetto.
public static void main(String args[]){
ArrayList<ArrayList<ArrayList<Integer>>> listOfListOfList = new ArrayList<ArrayList<ArrayList<Integer>>>();
int firstDimensionSize = 3;
int secondDimensionSize = 4;
int thirdDimensionSize = 5;
for (int i = 0; i < firstDimensionSize; i++) {
listOfListOfList.add(new ArrayList<ArrayList<Integer>>(vertices));
for (int j = 0; j < secondDimensionSize; j++) {
listOfListOfList.get(i).add(new ArrayList<Integer>());
for(int k = 0; k < thirdDimensionSize; k++) {
listOfListOfList.get(i).get(j).add(k);
}
}
}
}
Si noti che è possibile lasciare il <> vuota dopo che il nuovo ArrayList <>. Java dedurrà il tipo (non importa quanto nidificato), dal momento che java 7 credo. Li ho appena annotati nell'esempio per mostrare quale tipo si sta trattando a tutti i livelli, per rendere l'esempio più chiaro. Puoi ancora scriverli per rendere il tuo codice più leggibile.
fonte
2016-10-11 18:30:43
Perché * dovresti * essere in grado di? –
Poiché stai provando a lanciare un tipo non parametrizzato: 'Object', su un tipo parametrizzato:' ArrayList '. –
Rob
E cosa ti aspetti di fare? –