Boolean/boolean如何作为Java中HashMap的键?

use*_*654 0 java collections boolean

我有一个面试问题,询问是否Boolean可以作为HashMapJava 的关键.我不确定这是怎么可能的,并且想要一个解释.

目前还不清楚这个问题是否booleanBoolean意味着什么.也许两者都应该在答案中处理.

das*_*ght 5

当然可以:

Map<Boolean,MyType> myMap = new HashMap<Boolean,MyType>();
myMap.put(true, newValue);     // Write
MyType t = myMap.get(boolKey); // Read
Run Code Online (Sandbox Code Playgroud)

自动装箱使您的工作变得非常简单 - 您甚至不需要转换booleanBoolean.

但是,为什么boolean只有两个可能的值?一个包含两个项目和一个简单条件的数组会表现得更好:

MyType[] myArrayMap = new MyType[2];
myArrayMap[key ? 1 : 0] = newValue; // Write
MyType t = myArrayMap[key ? 1 : 0]; // Read
Run Code Online (Sandbox Code Playgroud)