목차
값 쌍을 위한 Java 컬렉션: 튜플?
Java java지도 시간 고유 키 없이 Java에서 값 쌍을 어떻게 저장할 수 있습니까?

고유 키 없이 Java에서 값 쌍을 어떻게 저장할 수 있습니까?

Jan 05, 2025 pm 09:51 PM

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

값 쌍을 위한 Java 컬렉션: 튜플?

소개:
Java에서 데이터 구조로 작업할 때 다음과 같은 문제를 자주 접하게 됩니다. 고유한 유형의 값 쌍을 저장하는 컬렉션이 필요합니다. Java는 이러한 목적으로 맵을 제공하지만 각 항목에 대해 고유 키를 적용하지만 이는 항상 바람직하지 않을 수 있습니다. 이 기사에서는 값 쌍을 저장하기 위한 대체 솔루션인 AbstractMap.SimpleEntry.

답변:

AbstractMap.SimpleEntry는 값 쌍을 나타내는 데 편리한 클래스입니다. Map.Entry 인터페이스를 구현하여 키와 값에 액세스하고 수정하기 위한 메서드를 제공합니다. 그러나 Maps와 달리 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);
로그인 후 복사

사용자 정의:

편의성을 높이기 위해 쉽게 생성하고 추가할 수 있는 "of" 메서드를 제공하는 ArrayList의 하위 클래스를 생성할 수 있습니다. 목록에 쌍을 추가합니다. 이는 구문을 더욱 단순화합니다.

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으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Java의 클래스로드 메커니즘은 다른 클래스 로더 및 대표 모델을 포함하여 어떻게 작동합니까? Java의 클래스로드 메커니즘은 다른 클래스 로더 및 대표 모델을 포함하여 어떻게 작동합니까? Mar 17, 2025 pm 05:35 PM

Java의 클래스로드 메커니즘은 다른 클래스 로더 및 대표 모델을 포함하여 어떻게 작동합니까?

2025 년 상위 4 개의 JavaScript 프레임 워크 : React, Angular, Vue, Svelte 2025 년 상위 4 개의 JavaScript 프레임 워크 : React, Angular, Vue, Svelte Mar 07, 2025 pm 06:09 PM

2025 년 상위 4 개의 JavaScript 프레임 워크 : React, Angular, Vue, Svelte

고급 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 또는 Gradle을 어떻게 사용합니까? 고급 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 또는 Gradle을 어떻게 사용합니까? Mar 17, 2025 pm 05:46 PM

고급 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 또는 Gradle을 어떻게 사용합니까?

Java에서 기능 프로그래밍 기술을 어떻게 구현할 수 있습니까? Java에서 기능 프로그래밍 기술을 어떻게 구현할 수 있습니까? Mar 11, 2025 pm 05:51 PM

Java에서 기능 프로그래밍 기술을 어떻게 구현할 수 있습니까?

Node.js 20 : 주요 성능 향상 및 새로운 기능 Node.js 20 : 주요 성능 향상 및 새로운 기능 Mar 07, 2025 pm 06:12 PM

Node.js 20 : 주요 성능 향상 및 새로운 기능

빙산 : 데이터 호수 테이블의 미래 빙산 : 데이터 호수 테이블의 미래 Mar 07, 2025 pm 06:31 PM

빙산 : 데이터 호수 테이블의 미래

캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA (Java Persistence API)를 어떻게 사용하려면 어떻게해야합니까? 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA (Java Persistence API)를 어떻게 사용하려면 어떻게해야합니까? Mar 17, 2025 pm 05:43 PM

캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA (Java Persistence API)를 어떻게 사용하려면 어떻게해야합니까?

카페인 또는 구아바 캐시와 같은 라이브러리를 사용하여 자바 애플리케이션에서 다단계 캐싱을 구현하려면 어떻게해야합니까? 카페인 또는 구아바 캐시와 같은 라이브러리를 사용하여 자바 애플리케이션에서 다단계 캐싱을 구현하려면 어떻게해야합니까? Mar 17, 2025 pm 05:44 PM

카페인 또는 구아바 캐시와 같은 라이브러리를 사용하여 자바 애플리케이션에서 다단계 캐싱을 구현하려면 어떻게해야합니까?

See all articles