> Java > java지도 시간 > HashMap에 키당 여러 값을 어떻게 저장할 수 있나요?

HashMap에 키당 여러 값을 어떻게 저장할 수 있나요?

DDD
풀어 주다: 2024-12-21 03:33:14
원래의
585명이 탐색했습니다.

How Can I Store Multiple Values per Key in a HashMap?

키당 여러 값을 저장하는 HashMap

HashMap은 키를 값에 매핑하는 데 널리 사용되는 데이터 구조입니다. 그러나 일반적으로 각 키에 대해 단일 값을 저장하도록 설계되었습니다. 이러한 제한은 동일한 키에 여러 값을 저장해야 하는 실제 요구 사항과 항상 일치하지 않을 수도 있습니다.

HashMap에서 여러 값을 구현하는 방법

키당 정확히 두 개의 값을 저장해야 하는 경우 여러 가지 접근 방식을 사용할 수 있습니다. 고려됨:

  1. 목록을 값으로 사용하는 지도: 여기에는 Map> 데이터 구조. 맵의 각 키는 값 목록에 해당하므로 여러 값을 단일 키와 연결할 수 있습니다.
  2. 래퍼 클래스: 두 값을 캡슐화하기 위해 래퍼 클래스를 생성할 수 있습니다. 그런 다음 맵은 이 래퍼 클래스의 인스턴스를 값으로 저장하여 두 값을 동시에 검색할 수 있는 방법을 제공합니다.
  3. 튜플 클래스: 내장 또는 요소 컬렉션을 나타내는 외부 라이브러리입니다. 맵은 튜플을 값으로 사용할 수 있으므로 단일 객체에 정확히 두 개의 값을 저장할 수 있습니다.

구현 예

목록 사용 값:

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

// Populate the HashMap
List<Person> people = new ArrayList<>();
people.add(new Person("Bob Smith"));
people.add(new Person("Bob Jones"));

peopleByForename.put("Bob", people);

// Retrieve values
List<Person> bobs = peopleByForename.get("Bob");
Person bob1 = bobs.get(0);
Person bob2 = bobs.get(1);
로그인 후 복사

사용 래퍼 클래스:

// Define the wrapper class
class Wrapper {
    private Person person1;
    private Person person2;

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

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

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

// Populate the HashMap
peopleByForename.put("Bob", new Wrapper(new Person("Bob Smith"), new Person("Bob Jones")));

// Retrieve values
Wrapper bobs = peopleByForename.get("Bob");
Person bob1 = bobs.getPerson1();
Person bob2 = bobs.getPerson2();
로그인 후 복사

튜플 클래스 사용:

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

// Populate the HashMap
peopleByForename.put("Bob", new Tuple2<>(new Person("Bob Smith"), new Person("Bob Jones")));

// Retrieve values
Tuple2<Person, Person> bobs = peopleByForename.get("Bob");
Person bob1 = bobs.Item1;
Person bob2 = bobs.Item2;
로그인 후 복사

위 내용은 HashMap에 키당 여러 값을 어떻게 저장할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿