未覆寫equals()情況下會測試是否為相同物件後塞入HashSet。
import java.util.*;
public class HashTest{
String s;
public HashTest(String s){ this.s = s; }
public static void main(String[] args){
HashSet<Object> hs = new HashSet<Object>();
HashTest ht1 = new HashTest("abcedf");
HashTest ht2 = new HashTest("abcedf");
String s1 = new String("abcedf");
String s2 = new String("abcedf");
hs.add(ht1);
hs.add(ht2);
hs.add(s1);
hs.add(s2);
System.out.println(hs.size());
}
}
==============
3
ht1跟ht2被視為不同物件,而字串s1和s2會被視為相同物件的原因是,String本身就覆寫了equals()的函式。
hs大小為3。
ht1跟ht2被視為不同物件,而字串s1和s2會被視為相同物件的原因是,String本身就覆寫了equals()的函式。
hs大小為3。
沒有留言:
張貼留言