簡體   English   中英

Java - 使用鍵/值對制作對象?

[英]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只是一個界面:你必須選擇一個實現。 HashMapTreeMap是你最好的選擇。 兩者都很好,但TreeMap只適用於類似的密鑰類型。 對於鍵,由於String與其他字符串相當,因此您可以使用任一映射實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM