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中删除一个对象,抛出异常.
生活不止眼前的苟且,还有诗和远方。。。