java HashMap和ArrayList合二为一

use*_*175 3 java arraylist hashmap

我需要一个类同时是HashMap和ArrayList.

为什么我需要HashMap?基于密钥快速访问对象.

为什么我需要ArrayList?随机选择一个元素.

你知道如何解决这个问题吗?从架子上有现成的课吗?

至于现在,我想到的唯一解决方案是使用ArrayList.然后随机访问是小菜一碟.并且仅仅使用简单的迭代器来选择基于键的对象是某种解决方案,但远非完美....

Jef*_*rey 6

你可以使用组合:

public class HashedList<K, V> {
    private final List<V> list = new ArrayList<>();
    private final Map<K, V> map = new HashMap<>(); 

    protected K getKey(V val);

    public void add(V value) {
        list.add(value);
        map.put(getKey(value), value);
    }

    public V get(int index) {
        return list.get(index);
    }

    public V get(K key) {
        return map.get(key);
    }
}
Run Code Online (Sandbox Code Playgroud)