java.util.List接口的方法subList()的使用注意事项

 JDK中,List接口有一个实例方法List<E> subList(int fromIndex, int toIndex),其作用是返回一个以fromIndex为起始索引(包含),以toIndex为终止索引(不包含)的子列表(List)。 

但值得注意的是,返回的这个子列表的幕后其实还是原列表;也就是说,修改这个子列表,将导致原列表也发生改变

见下边的链接,其说反之亦然,我试了一下,反之就抛异常了。

代码,从sublist中删除一个对象。

复制代码
package collection.test;

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

public class SubListTest {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.addAll(Arrays.asList(1, 10, 2, 7, 9, 8, 3, 2));
        List<Integer> subList = list.subList(2, 5);// {2,7,9}
        System.out.println("list=" + list);
        System.out.println("sublist=" + subList);
        subList.remove(2);// del 9
        // list.remove(2);// del 9
        System.out.println("list=" + list);
        System.out.println("sublist=" + subList);

    }
}
复制代码

 

反之,从原list中删除一个对象,抛出异常.

posted on 2014-04-25 14:04  锟斤拷锟斤拷  阅读(316)  评论(0编辑  收藏  举报

导航