菜鸡削笔机:集合list里存放的是一个个对象,当你往集合中要添加一个和已有元素值 相同的元素时,记得要new一个新对象!
list.add(new StringBuilder("a"));
StringBuilder sb=list.get(0);
list.add(sb);
System.out.println(list.toString());
list.get(0).append("b");
System.out.println(list.toString());
这段代码输出结果是
[a, a]
[ab, ab]
当你往list中添加sb时,其实sb这个对象和已有的a对象是同一个对象,它们都指向同一个地址,所以改变其中一个对象的值时,另一个也会跟着变化,所以当你要添加一个和list中已有的对象值相同的元素时,记得要new一个新对象,再加入其中。