[英]Java - making objects with key/value pairs?
我想制作以下類型的對象。 這是我想在Java中弄清楚的更高層次的願望:
ListObject(key,String):每個鍵對應一個String值; key是一個字符串本身
ListObject(key,String []):每個鍵對應一個字符串數組; key是一個字符串本身
ListObject(key,String,String []):相同的交易,但每個鍵有兩個值字段。
我將如何制作(並使用!)這種類型的對象?
謝謝。
你似乎需要一些Map
而不是List
。 檢查Javadoc for Map實現; 最常見的是HashMap
,但也有可用的排序,並發,確定性可迭代實現等。
ListObject:每個鍵對應一個String值; key是一個字符串本身
Map<String, String>
ListObject:每個鍵對應一個字符串數組; key是一個字符串本身
Map<String, String[]>
(或者最好是Map<String, List<String>>
)
ListObject:相同的交易,但每個鍵有兩個值字段。
Map<String, UserDefinedClassWithTwoFields>
Map<KeyType,ValueType>
由HashMap<KeyType, ValueType>
和TreeMap<KeyType, ValueType>
等實現 - HashMap是無序的,TreeMap是有序的。
其他有用的Maps是LinkedHashMap
,它類似於HashMap
但按插入順序迭代,而com.google.common.collect.Maps
中的com.google.common.collect.Maps
包含許多實用方法, com.google.common.collect.ImmutableMap
是一個不可變映射實現。
對於與字符串數組對應的鍵,您可能希望查看Multimap
,它是具有給定鍵的多個值的映射。
您可以使用Map來實現此目的。 Map的一般語法是:
Map<String, SomeObject> = new HashMap<String, SomeObject>();
現在java中有四種地圖:
哈希映射 - 當您不關心迭代地圖時元素顯示的順序時,請使用此映射。
HASH TABLE - 哈希映射的同步版本。
鏈接的哈希映射 - 在關注廣告訂單時使用此選項。
樹圖 - 當您需要自定義排序順序時使用此選項。
Map用於在Java中創建關聯數組。
映射您的第一個示例。 每個String鍵都與String值相關聯。
映射第二個例子。 值是String的數組。
對於上一個示例,您必須創建自己的類,其中包含兩個字段:一個是String,另一個是String []。 然后,創建一個將String與您的類型的對象相關聯的映射。
Java的Map
類型最有可能成功。 Map<KeyType, ValueType>
存儲鍵值對,因此您將擁有Map<String, String>
, Map<String, List<String>>
和Map<String, SomePairType>
。
Map
只是一個界面:你必須選擇一個實現。 HashMap
和TreeMap
是你最好的選擇。 兩者都很好,但TreeMap
只適用於類似的密鑰類型。 對於鍵,由於String
與其他字符串相當,因此您可以使用任一映射實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.