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

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

Susan Sarandon
Release: 2025-01-05 21:51:42
Original
254 people have browsed it

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

A Java Collection for Value Pairs: Tuples?

Introduction:
When working with data structures in Java, one often encounters the need for a collection that stores pairs of values with distinct types. While Java provides Maps for this purpose, they enforce a unique key for each entry, which may not always be desired. This article delves into an alternative solution for storing value pairs: AbstractMap.SimpleEntry.

Answer:

AbstractMap.SimpleEntry is a convenient class for representing pairs of values. It implements the Map.Entry interface, providing methods for accessing and modifying the key and value. However, unlike Maps, SimpleEntry does not require a unique key for each pair.

Implementation:

To use AbstractMap.SimpleEntry, you can create an ArrayList of SimpleEntry objects, specifying the types of the key and value at instantiation. Here's an example:

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);
Copy after login

Customization:

For added convenience, you can create a subclass of ArrayList that provides an "of" method for easily creating and adding pairs to the list. This further simplifies the syntax:

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);
Copy after login

By utilizing AbstractMap.SimpleEntry, developers can efficiently store data in pairs with varying types, maintaining order without key uniqueness constraints.

The above is the detailed content of How Can I Store Value Pairs in Java Without Unique Keys?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template