gpt4 book ai didi

java - 为什么在 Java 中这个 TreeSet 通过引用传递?

转载 作者:行者123 更新时间:2023-11-30 06:49:58 25 4
gpt4 key购买 nike

为什么这段代码会改变最后一个 print 语句中 set1 的值,我的印象是在 Java 中参数是按值传递的?

我错过了什么吗?

import java.util.Set;
import java.util.TreeSet;


public class Testing {
public static void main(String args[]) {

Set<String> set1 = new TreeSet<String>() ;
set1.add("A") ;
set1.add("B") ;
set1.add("C") ;
set1.add("D") ;
set1.add("F") ;
set1.add("G") ;
System.out.println("set1, the tree set: " + set1) ;

Set<String> set2 = new TreeSet<String>() ;
set2.add("B") ;
set2.add("D") ;
set2.add("E") ;
set2.add("F") ;
set2.add("G") ;
System.out.println("set2, the tree set: " + set2) ;

Set set3 = difference(set1, set2);

System.out.println("Difference: " + set1 + " - " + set2
+ " = " + set3) ;



}
public static Set<String> difference(Set<String> x, Set<String> y)
{

x.removeAll(y);

return x;
}}

最佳答案

Java 是按值传递,但在本例中传递的值是对 Set 的引用,因此它可以修改原始对象。

关于java - 为什么在 Java 中这个 TreeSet 通过引用传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43012295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com