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
Map
由HashMap
和TreeMap
等实现 – 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
存储键值对,因此您将拥有Map
, Map
和Map
。
Map
只是一个界面:你必须选择一个实现。 HashMap
和TreeMap
是你最好的选择。 两者都很好,但TreeMap
只适用于类似的密钥类型。 对于键,由于String
与其他字符串相当,因此您可以使用任一映射实现。