> Java > java지도 시간 > 값 쌍에 대해 Java의 'Map' 대신 'AbstractMap.SimpleEntry'를 언제 사용해야 합니까?

값 쌍에 대해 Java의 'Map' 대신 'AbstractMap.SimpleEntry'를 언제 사용해야 합니까?

DDD
풀어 주다: 2024-12-16 07:05:15
원래의
999명이 탐색했습니다.

When Should I Use `AbstractMap.SimpleEntry` Instead of Java's `Map` for Value Pairs?

값 쌍 저장을 위한 Java 맵의 대안

Java는 키-값 쌍을 관리하기 위한 Map 데이터 구조를 제공하므로 각 항목에 대해 특정 유형을 정의할 수 있습니다. 그러나 각 요소가 서로 다른 유형의 두 값으로 구성된 값 쌍 모음이 필요한 경우 맵은 이상적인 솔루션이 아닐 수 있습니다.

이 문제를 해결하기 위해 Java는 대안인 AbstractMap을 제공합니다. .SimpleEntry 클래스. 이 클래스를 사용하면 각 값이 고유한 유형을 가질 수 있는 값 쌍을 포함하는 항목을 생성할 수 있습니다.

AbstractMap.SimpleEntry 사용

AbstractMap.SimpleEntry를 활용하려면 다음 단계를 따르세요.

  1. 인스턴스 만들기: 다음을 지정하여 SimpleEntry 개체를 인스턴스화합니다. 보유할 값 유형.
  2. 항목 추가: 컬렉션에 SimpleEntry 인스턴스를 추가하려면 컬렉션의 add() 메서드를 사용하세요.
  3. 액세스 값: getKey() 및 getValue()를 사용하여 SimpleEntry에서 값을 검색합니다.

예:

// Create a list of SimpleEntry pairs
List<Map.Entry<String, Integer>> pairList = new ArrayList<>();

// Add some pairs to the list
pairList.add(new AbstractMap.SimpleEntry<>("Not Unique Key 1", 1));
pairList.add(new AbstractMap.SimpleEntry<>("Not Unique Key 2", 2));
로그인 후 복사

편의 메서드 및 서브클래싱

프로세스를 단순화하려면 createEntry() 메서드를 사용하여 SimpleEntry 인스턴스를 생성할 수 있습니다. 원하는 유형으로. 또한 ArrayList 클래스를 서브클래싱하고 of() 메서드를 노출하여 구문을 더욱 간결하게 만들 수 있습니다.

// Create a TupleList class extending ArrayList
public class TupleList<E> extends ArrayList<E> {

    public TupleList() {}

    // Exposed method for creating and adding SimpleEntry pairs
    public void of(Object... args) {
        if (args.length % 2 != 0) {
            throw new IllegalArgumentException("Number of arguments must be even.");
        }

        for (int i = 0; i < args.length; i += 2) {
            add(new SimpleEntry<>(args[i], args[i + 1]));
        }
    }
}

// Usage
TupleList<Map.Entry<String, Integer>> pair = new TupleList<>();
pair.of("Not Unique Key 1", 1);
pair.of("Not Unique Key 2", 2);
로그인 후 복사

이를 통해 컬렉션에 쌍을 생성하고 추가하는 데 더욱 간결한 구문이 가능합니다.

위 내용은 값 쌍에 대해 Java의 'Map' 대신 'AbstractMap.SimpleEntry'를 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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