首页 >Java >java教程 >如何在没有唯一键的情况下在 Java 中存储值对?

如何在没有唯一键的情况下在 Java 中存储值对?

Susan Sarandon
Susan Sarandon原创
2025-01-05 21:51:42218浏览

How Can I Store Value Pairs in Java Without Unique Keys?

值对的 Java 集合:元组?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn