黑马程序员技术交流社区
标题:
关于subList方法。
[打印本页]
作者:
寐海流风
时间:
2014-6-11 22:10
标题:
关于subList方法。
本帖最后由 寐海流风 于 2014-6-14 10:33 编辑
自己敲代码的时候遇到个关于subList的问题,简化写在下面(真心等待高手解答):
List<String> list = new ArrayList<String>();
list.add("abc1");
list.add("abc2");
list.add("abc3");
list.add("abc4");
List<String> list2 = list.subList(0,2);
list2.set(0,"abc0");
System.out.println(list);
System.out.println(list2);
为什么打印结果是:
[abc0, abc2, abc3, abc4]
[abc0, abc2]
_______________________________
list2.set(0,"abc0");只是修改了list2[0],为什么list[0]也被修改了?
作者:
寐海流风
时间:
2014-6-12 11:14
顶啊,别沉。
作者:
yanghu
时间:
2014-6-12 11:32
这只能说明一个问题,subList()方法,它底层是存储着字符串对象的引用地址,并没有复制一个对象。所以才会导致这个现象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2