数据结构java中赋值运算符和addAll之间的区别是什么?
我想知道与一本书有关的一个固定章节的问题
Set<String> mySet = new HashSet<>();
mySet.add("red");
mySet.add("blue");
mySet.add("pink");
mySet.add("black");
//first presentation
Set<String> newSetFirst = new HashSet<>();
newSetSirst.addAll(mySet);
//second presentation
Set<String> newSetTwo;
newSetTwo = mySet;
第一次演讲和第二次演讲有什么区别
这是什么意思。addAll(mySet)
newSetTwo=mySet是什么意思
# 1 楼答案
第一次演示:
当你
addAll
时,你只是把所有的东西都添加到一个现有的集合中。对添加自的集合的更新不会反映在该集合中,因为它是完全独立的第二次演示:
当你赋值时,你只是给自己另一个变量,它指向同一个列表
mySet == newSetTwo
是真的:只有一套。因此,改变mySet
也会改变newSetTwo
# 2 楼答案
第一个演示文稿创建一个新列表,并将第一个列表中的每个项目添加到该列表中。 如果你更改了mySetFirst列表中的一项,mySet列表将不会更改
第二个演示指向mySet的引用。如果你在newSetTwo中更改了一个项目,该项目也会在mySet中更改。在这种情况下,mySet和newSetTwo是同一个列表