1
なぜ最後のprint文のset1の値がこのコードによって変更されるのですか? Javaの引数が値渡しであったという印象を受けましたか?Javaで、このTreeSetが参照渡しであるのはなぜですか?
何か不足していますか?
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;
}}
これはセット専用のケースですか?なぜなら、あなたがストリングと同じようなことをしていたら、これは起こらないからです。 – gencode
@gencode文字列は不変です。 – Powerlord