Java – 使用键/值对制作对象?

我想制作以下类型的对象。 这是我想在Java中弄清楚的更高层次的愿望:

ListObject(key,String):每个键对应一个String值; key是一个字符串本身

ListObject(key,String []):每个键对应一个字符串数组; key是一个字符串本身

ListObject(key,String,String []):相同的交易,但每个键有两个值字段。

我将如何制作(并使用!)这种类型的对象?

谢谢。

你似乎需要一些Map而不是List 。 检查Javadoc for Map实现; 最常见的是HashMap ,但也有可用的排序,并发,确定性可迭代实现等。

ListObject:每个键对应一个String值; key是一个字符串本身

 Map 

ListObject:每个键对应一个字符串数组; key是一个字符串本身

 Map 

(或者最好是Map>

ListObject:相同的交易,但每个键有两个值字段。

 Map 

MapHashMapTreeMap等实现 – HashMap是无序的,TreeMap是有序的。

其他有用的Maps是LinkedHashMap ,它类似于HashMap但按插入顺序迭代,而com.google.common.collect.Maps中的com.google.common.collect.Maps包含许多实用方法, com.google.common.collect.ImmutableMap是一个不可变映射实现。

对于与字符串数组对应的键,您可能希望查看Multimap ,它是具有给定键的多个值的映射。

您可以使用Map来实现此目的。 Map的一般语法是:

 Map = new HashMap(); 

现在java中有四种地图:

哈希映射 – 当您不关心迭代地图时元素显示的顺序时,请使用此映射。

HASH TABLE – 哈希映射的同步版本。

链接的哈希映射 – 在您关心广告订单时使用此选项。

树图 – 在需要自定义排序顺序时使用此选项。

Map用于在Java中创建关联数组。

映射您的第一个示例。 每个String键都与String值相关联。

映射为您的第二个示例。 值是String的数组。

对于上一个示例,您必须创建自己的类,其中包含两个字段:一个是String,另一个是String []。 然后,创建一个将String与您的类型的对象相关联的映射。

Java的Map类型最有可能成功。 Map存储键值对,因此您将拥有MapMap>Map

Map只是一个界面:你必须选择一个实现。 HashMapTreeMap是你最好的选择。 两者都很好,但TreeMap只适用于类似的密钥类型。 对于键,由于String与其他字符串相当,因此您可以使用任一映射实现。