java中赋值运算符和addAll之间的区别是什么?

java中赋值运算符和addAll之间的区别是什么?,java,data-structures,set,Java,Data Structures,Set,我想知道与一本书有关的一个固定章节的问题 Set<String> mySet = new HashSet<>(); mySet.add("red"); mySet.add("blue"); mySet.add("pink"); mySet.add("black"); //first presentation Set<String> newSetFirst = new HashSet<>(

我想知道与一本书有关的一个固定章节的问题

    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;
Set mySet=new HashSet();
mySet.add(“红色”);
mySet.add(“蓝色”);
mySet.add(“粉色”);
mySet.add(“黑色”);
//第一次介绍
Set newSetFirst=newhashset();
newSetSirst.addAll(mySet);
//第二次介绍
设置newsetwo;
newSetTwo=mySet;
第一次演讲和第二次演讲有什么区别

newSetSirst.addAll(mySet)是什么意思

newSetTwo=mySet是什么意思?

第一次演示:

Set<String> newSetFirst = new HashSet<>();
newSetFirst.addAll(mySet);

System.out.println(newSetFirst);  // Prints ["red", "blue", "pink", "black"]

mySet.clear();

System.out.println(newSetFirst);  // Prints ["red", "blue", "pink", "black"]
Set<String> newSetTwo;
newSetTwo = mySet;

System.out.println(newSetTwo);  // Prints ["red", "blue", "pink", "black"]

mySet.clear();

System.out.println(newSetTwo);  // Prints []

当你赋值时,你只是给自己另一个变量,它指向同一个列表
mySet==newsetwo
为真:只有一个集合。因此,更改
mySet
也会更改
newSetTwo

第一个演示文稿将创建一个新列表,并将第一个列表中的每个项目添加到该列表中。 如果您更改mySetFirst列表中的一项,则不会更改mySet列表

第二个演示指向mySet的引用。如果你在newSetTwo中更改了一个项目,该项目也会在mySet中更改。在这种情况下,mySet和newsetwo是同一个列表