简介:
在 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中文网其他相关文章!