如何在Java中创建哈希表?

akd*_*dom 9 java hash hashmap

在Java中创建哈希表(或关联数组...)最直接的方法是什么?我的google-fu已经出现了几个例子,但是有一种标准的方法吗?

有没有办法用键 - >值对列表填充表,而无需在每个对的对象上单独调用add方法?

Edm*_*Tay 25

Map map = new HashMap();
Hashtable ht = new Hashtable();
Run Code Online (Sandbox Code Playgroud)

这两个类都可以从java.util包中找到.以下jGuru FAQ条目中解释了2之间的区别.


izb*_*izb 22

您可以使用双括号来设置数据.你仍然可以调用add或者put,但它不那么难看:

private static final Hashtable<String,Integer> MYHASH = new Hashtable<String,Integer>() {{
    put("foo",      1);
    put("bar",      256);
    put("data",     3);
    put("moredata", 27);
    put("hello",    32);
    put("world",    65536);
 }};
Run Code Online (Sandbox Code Playgroud)


Cem*_*kas 7

另外,不要忘记Map和Hashtable在Java 5及更高版本中都是通用的(与Collections框架中的任何其他类一样).

Map<String, Integer> numbers = new HashMap<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);

Integer one = numbers.get("one");
Assert.assertEquals(1, one);
Run Code Online (Sandbox Code Playgroud)