2012-08-09 2 views

risposta

11

Sì, è possibile utilizzare il subList method:

List<...> list2 = list1.subList(startIndex, endIndex); 

Ciò restituisce una vista su quella parte della lista originale, non copia i dati.
Se si desidera una copia:

List<...> list2 = new ArrayList<...> (list1.subList(startIndex, endIndex)); 
+0

Grazie Così stupido da parte mia chiedere esso. – user1583803

+1

Esatto, ma attenzione che i riferimenti agli oggetti rimangono gli stessi. Quindi se cambi i tuoi oggetti nella sottocartella saranno anche cambiati nel primo elenco. – Chris

+0

@Chris sì la seconda versione non è una copia profonda, copia solo i riferimenti degli oggetti. – assylias

0
/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 get a sub list of Java ArrayList use 
     List subList(int startIndex, int endIndex) method. 
     This method returns an object of type List containing elements from 
     startIndex to endIndex - 1. 
    */ 

    List lst = arrayList.subList(1,3); 

    //display elements of sub list. 
    System.out.println("Sub list contains : "); 
    for(int i=0; i< lst.size() ; i++) 
     System.out.println(lst.get(i));