簡介:
在 Java 中使用資料結構時,經常會遇到需要一個儲存具有不同類型的值對的集合。雖然 Java 為此目的提供了 Map,但它們為每個條目強制使用唯一的鍵,這可能並不總是需要的。本文深入研究了儲存值對的替代解決方案:AbstractMap.SimpleEntry。
答案:
AbstractMap.SimpleEntry 是用來表示值對的便利類別。它實作了Map.Entry接口,提供了存取和修改鍵和值的方法。但是,與 Map 不同,SimpleEntry 不需要每對都有唯一的鍵。
實作:
要使用 AbstractMap.SimpleEntry,您可以建立 SimpleEntry 物件的 ArrayList ,指定實例化時鍵和值的類型。以下是一個範例:
java.util.List<java.util.Map.Entry<String, Integer>> pairList = new java.util.ArrayList<>(); // Create and add pairs to the list java.util.Map.Entry<String, Integer> pair1 = new java.util.AbstractMap.SimpleEntry<>("Not Unique key1", 1); java.util.Map.Entry<String, Integer> pair2 = new java.util.AbstractMap.SimpleEntry<>("Not Unique key2", 2); pairList.add(pair1); pairList.add(pair2);
自訂:
為了更方便,您可以建立ArrayList 的子類,它提供「of」方法,以便輕鬆建立和新增配對到清單。這進一步簡化了語法:
public class TupleList<T> extends ArrayList<T> { public static <S, U> TupleList<Map.Entry<S, U>> of(S key, U value) { Map.Entry<S, U> pair = new AbstractMap.SimpleEntry<>(key, value); TupleList<Map.Entry<S, U>> tupleList = new TupleList<>(); tupleList.add(pair); return tupleList; } } // Usage TupleList<Map.Entry<String, Integer>> pair = new TupleList<>(); pair.of("Not Unique key1", 1); pair.of("Not Unique key2", 2);
透過利用 AbstractMap.SimpleEntry,開發人員可以有效地成對儲存不同類型的數據,在沒有鍵唯一性約束的情況下保持順序。
以上是如何在沒有唯一鍵的情況下在 Java 中儲存值對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!