2012-08-09 88 views

回答

11

是的,你可以使用subList method

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

這將返回原始表的那部分視圖,它不會複製數據。
如果你想要一個副本:

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

感謝這麼愚蠢的我要問它。 – user1583803 2012-08-09 09:40:19

+1

沒錯,但請注意對象的引用保持不變。所以如果你在子列表中改變你的對象,他們也會在第一個列表中被改變。 – Chris 2012-08-09 09:40:29

+0

@Chris是第二個版本不是深層複製,它只複製對象的引用。 – assylias 2012-08-09 09:41:19

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));