我试图将键插入哈希图中,但我实际上并不需要插入值。我可以,但不会使用。我知道hashmap可以接受null键和值,但只能接受一个null键,值对。我可以map.put(key,null)
的值为空,但是该方法似乎效率低下。我的意图是我将使用map.containsKey(key)
方法来确定哈希图中是否存在键,这就是为什么我不需要值的原因。
话虽如此,有没有一种方法可以声明HashMap<key>
而不是HashMap<key,arbitraryValue>
,所以我不必添加不必要的null值?抱歉,这可能是一个愚蠢的问题。
答案 0 :(得分:0)
集合只是一个不包含任何重复项的集合。如HashSet<E>
所述,实现类Ole V.V.实际上在幕后使用HashMap<K,V>
,但是在代码中使用Set<E>
是IMO更好的方法,因为您的问题确实不需要这些值。
此外,在HashMap<K,V>
方法中使用所有值均为null
的{{1}}存在问题。如果请求的get(K key)
没有关联的值,则此方法将返回null
。那么,如何知道您对key
的调用返回的是有效的还是无效的get
?即
null
因此,对于您的特定问题,我会尝试类似的方法!
Map<Integer, Object> map = new HashMap<>();
// add entry 0 ->
map.put(0, null);
Object get1 = map.get(0); // returns null, so 0 must be a key in our map!
Object get2 = map.get(1); // also returns null, so is 1 a key too? No!