本帖最后由 高波 于 2013-5-25 12:51 编辑
Question:
取出集合al的子集合subal,通过答应哈希值,发现哈希值不同,说明他们在内存中是两个独立的对象,当我调用subal的Collection.fill方法后,为什么原集合中的元素(subal部分)也跟着改变了?- import java.util.*;
- class Test {
- public static void main(String[] args) {
- List<String> al = new ArrayList<String>();
- al.add("abc01");
- al.add("abc03");
- al.add("abc08");
- al.add("abc06");
- al.add("abc05");
- al.add("abc02");
- al.add("abc07");
- fillMethod(al, 3, 5);
- }
- public static void fillMethod(List<String> al, int start, int end) {
- sop(al);
- List<String> subal = al.subList(start, end);
- Collections.fill(subal, "pp");
- sop(subal);
- sop(al);
- sop(subal.hashCode());
- sop(al.hashCode());
- }
- public static void sop(Object obj) {
- System.out.println(obj);
- }
- }
复制代码 |