看板 java 關於我們 聯絡資訊
Given: enum Example {ONE, TWO, THREE} Which statement is true? A. The expressions (ONE == ONE) and ONE.equals(ONE) are both guaranteed to be true. B. The expression (ONE < TWO) is guaranteed to be true and ONE.compareTo(TWO) is guaranteed to be less than one. C. The Example values cannot be used in a raw java.util.HashMap; instead, the programmer must use a java.util.EnumMap. d. The Example values can be used in a java.util.SortedSet, but the set will NOT be sorted because enumerated types do NOT implement java.lang.Comparable ------------------ The answer: A 想請問B,C,D是哪部分錯了, 這題不會得太多,實在沒有辦法做判斷。 A我倒是較能理解,因為ONE其實會是一個繼承Enum的類別,所以ONE==ONE物件記憶體位置 相同; ONE.equals(ONE), 我只知道System.out.println(Example.ONE); 會得到字串 ONE, 所以知道會對。 跟大家請教一下了,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.217.72 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1487502125.A.5A5.html
ssccg: B <不能用、C可以啊、D有Comparable啊 02/20 00:28
ssccg: enum在java只是syntax sugar,宣告決定name和ordinal 02/20 00:37
ssccg: 大小用ordinal決定,其他部分跟一般物件沒什麼差別 02/20 00:37
ssccg: 你有一點說錯,Example才是繼承Enum,ONE是個static field 02/20 00:39
修正錯字 java."util".SortedSet ※ 編輯: uopsdod (180.217.174.122), 02/20/2017 21:03:35 修正錯字 java.util.HashMap ※ 編輯: uopsdod (180.217.174.122), 02/20/2017 21:04:41
uopsdod: 恩恩感謝糾正 02/20 21:05
uopsdod: C我等等去查查看為什麼,還真不知道問的比較觀念是什麼 02/20 21:05
修正錯字 enum Example ※ 編輯: uopsdod (180.217.174.122), 02/20/2017 21:06:27
uopsdod: 所以Enum其實也能給HashMap用,只是更適合給EnumMap! 02/20 21:14
uopsdod: 感謝 了解了 02/20 21:14
adrianshum: 你後面的解釋差不多全錯 02/23 09:36
uopsdod: 求指教 感謝感謝 02/25 06:38
adrianshum: ONE 不是一個類別,所以ONE==ONE 相等的原因不對 03/01 19:11
adrianshum: equals 的原因也與「字串ONE」一點關係也沒有。單純是 03/01 19:15
adrianshum: 因為Enum 的equals 是單純以== 作比較而已。順帶一提 03/01 19:15
adrianshum: ,正常的equals 在==(指向同一instance) 的情況下也 03/01 19:15
adrianshum: 該return true,既然上面你知道== 會對,意味equals() 03/01 19:15
adrianshum: 也一定對啦 03/01 19:15