ListSubListDemo List獲取子集的方法


/**
    List獲取子集的方法
    List<E> subList(int fromIndex,  int toIndex)
    需要注意的是:對子List的操作,會影響原List.即subList獲取的List和原List占有相同的空間.
    對子List的修改就是對List的修改.
    可以用作范圍的操作,比如范圍清除:  list.subList(formIndex,toIndex).clear();

案例  使用List接口提供的subList方法獲取子List,詳細要求如下:
1) 創建List接口的引用list,使該引用指向ArrayList的實例;將0~9十個數字作為十個元素放入到集合list中,並輸出集合list。
2) 獲取list集合的子集合subList,subList子集合的元素為[3, 4, 5, 6, 7]並輸出子集合subList。
3) 將subList集合中的每一個元素擴大10倍,輸出list集合和subList集合,驗證subList獲得的List集合和源List集合占用相同的數據空間。
4) 清除list集合中索引位置為3~7(包含3和7)的元素,並輸出list。
 */
public class ListSubListDemo {

    public static void main(String[] args) {
        /*案例  使用List接口提供的subList方法獲取子List*/
        /*1) 創建List接口的引用list,使該引用指向ArrayList的實例;
        將0~9十個數字作為十個元素放入到集合list中,並輸出集合list。*/
        List<Integer> list = new ArrayList<Integer>();
        for(int i=0; i<10; i++){
            list.add(i);
        }
        System.out.println("list集合:"+list);

        //2) 獲取list集合的子集合subList,subList子集合的元素為[3, 4, 5, 6, 7]並輸出子集合subList。
        List<Integer> subList = list.subList(3, 8);
        System.out.println("subList集合:"+subList);

        /*3) 將subList集合中的每一個元素擴大10倍,輸出list集合和subList集合,
        驗證subList獲得的List集合和源List集合占用相同的數據空間。*/
        for(int i=0; i<subList.size(); i++){
            subList.set(i, subList.get(i)*10);
        }
        System.out.println("subList擴大10倍后: "+subList);
        System.out.println("list集合: "+list);
        /*    輸出結果:
         *     subList擴大10倍后: [30, 40, 50, 60, 70]
            list集合: [0, 1, 2, 30, 40, 50, 60, 70, 8, 9]
         */

        //4) 清除list集合中索引位置為3~7(包含3和7)的元素,並輸出list。
        list.subList(3, 8).clear();
        System.out.println("list清除3~7位置后的集合:"+list);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM