作者uopsdod (pcman)
看板java
标题[问题] OCJP SE6题目 - enum
时间Sun Feb 19 19:02:03 2017
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://webptt.com/cn.aspx?n=bbs/java/M.1487502125.A.5A5.html
1F:→ ssccg: B <不能用、C可以啊、D有Comparable啊 02/20 00:28
2F:→ ssccg: enum在java只是syntax sugar,宣告决定name和ordinal 02/20 00:37
3F:→ ssccg: 大小用ordinal决定,其他部分跟一般物件没什麽差别 02/20 00:37
4F:→ 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
5F:→ uopsdod: 恩恩感谢纠正 02/20 21:05
6F:→ uopsdod: C我等等去查查看为什麽,还真不知道问的比较观念是什麽 02/20 21:05
修正错字 enum Example
※ 编辑: uopsdod (180.217.174.122), 02/20/2017 21:06:27
7F:→ uopsdod: 所以Enum其实也能给HashMap用,只是更适合给EnumMap! 02/20 21:14
8F:→ uopsdod: 感谢 了解了 02/20 21:14
9F:→ adrianshum: 你後面的解释差不多全错 02/23 09:36
10F:→ uopsdod: 求指教 感谢感谢 02/25 06:38
11F:→ adrianshum: ONE 不是一个类别,所以ONE==ONE 相等的原因不对 03/01 19:11
12F:→ adrianshum: equals 的原因也与「字串ONE」一点关系也没有。单纯是 03/01 19:15
13F:→ adrianshum: 因为Enum 的equals 是单纯以== 作比较而已。顺带一提 03/01 19:15
14F:→ adrianshum: ,正常的equals 在==(指向同一instance) 的情况下也 03/01 19:15
15F:→ adrianshum: 该return true,既然上面你知道== 会对,意味equals() 03/01 19:15
16F:→ adrianshum: 也一定对啦 03/01 19:15