>Java >java지도 시간 >Java에서 키당 여러 값을 사용하여 HashMap을 구현하는 방법은 무엇입니까?

Java에서 키당 여러 값을 사용하여 HashMap을 구현하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-11 10:02:121011검색

How to Implement a HashMap with Multiple Values Per Key in Java?

키당 여러 값이 있는 맵 구현

특정 시나리오에서는 여러 값을 동일한 키에 저장해야 할 수도 있습니다. 해시맵. Java의 표준 HashMap은 기본적으로 이 동작을 지원하지 않지만 이를 달성하기 위한 몇 가지 접근 방식이 있습니다:

1. 목록을 값으로 사용하는 맵:

이 접근 방식에는 값이 원하는 값의 목록인 HashMap을 생성하는 작업이 포함됩니다. 예를 들면 다음과 같습니다.

Map<String, List<Person>> peopleByForename = new HashMap<>();

이 방법은 키 아래에 저장되는 값 수에 대한 유연성을 제공하지만 정확히 두 개의 값을 갖는다는 보장은 없습니다.

2. 래퍼 클래스 사용:

대안은 원하는 값을 포함하는 래퍼 클래스를 정의하고 이를 HashMap의 값으로 사용하는 것입니다.

class Wrapper {
    private Person person1;
    private Person person2;

    public Wrapper(Person person1, Person person2) {
        this.person1 = person1;
        this.person2 = person2;
    }

    public Person getPerson1() { return this.person1; }
    public Person getPerson2() { return this.person2; }
}

Map<String, Wrapper> peopleByForename = new HashMap<>();

이 방법은 정확히 두 개의 값이 존재하지만 래퍼 클래스에 대한 추가 상용구 코드를 생성해야 합니다.

3. 튜플 사용:

튜플 클래스는 여러 값을 단일 객체로 캡슐화합니다. HashMap의 값으로 튜플을 사용하면 키당 여러 값을 효과적으로 얻을 수 있습니다. 예:

import java.util.Tuple;

Map<String, Tuple2<Person, Person>> peopleByForename = new HashMap<>();

4. 여러 맵을 나란히 사용:

마지막으로 다양한 키 유형에 대해 여러 HashMap을 사용할 수도 있습니다. 예를 들어 다음을 만들 수 있습니다.

Map<String, Person> firstPersonByForename = new HashMap<>();
Map<String, Person> secondPersonByForename = new HashMap<>();

이 방법을 사용하면 값을 명확하게 구분할 수 있지만 두 맵이 일관되게 업데이트되지 않으면 불일치가 발생할 가능성이 있습니다.

선택 접근 방식은 애플리케이션의 특정 요구 사항에 따라 달라집니다. 키당 두 값을 엄격하게 적용하는 것이 중요한 경우 래퍼 클래스나 튜플을 사용하는 것이 더 적합할 수 있습니다. 또는 값 개수의 유연성을 원하는 경우 목록을 값으로 사용하는 맵을 사용하는 것이 더 적절할 수 있습니다.

위 내용은 Java에서 키당 여러 값을 사용하여 HashMap을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.