> Java > java지도 시간 > 특정 속성을 기반으로 ArrayList에서 개체를 효율적으로 검색하는 방법은 무엇입니까?

특정 속성을 기반으로 ArrayList에서 개체를 효율적으로 검색하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-04 02:13:09
원래의
193명이 탐색했습니다.

How to Efficiently Retrieve Objects from ArrayLists Based on Specific Properties?

속성을 기반으로 ArrayList에서 개체 검색

객체 지향 프로그래밍에서는 컬렉션 내의 특정 속성. 이는 POJO로 작업하고 메모리 내 캐시에서 객체를 검색해야 하는 Java EE와 같은 프레임워크에서 특히 유용할 수 있습니다.

Carnet 객체 목록을 관리하는 시나리오를 생각해 보세요. 각각은 codeTitre, nomTitre 및 codeIsin과 같은 속성을 가지고 있습니다. codeIsin을 기반으로 특정 Carnet 개체를 찾아야 한다고 가정해 보겠습니다. 이를 달성하려면 Java 스트림의 기능을 활용할 수 있습니다.

public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) {
    return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null);
}
로그인 후 복사

이 코드 조각은 스트림을 활용하여 Carnet 개체 컬렉션을 효율적으로 검색하고 지정된 codeIsIn 기준과 일치하지 않는 개체를 필터링합니다. findFirst() 메서드를 활용하면 일치하는 첫 번째 객체를 검색하거나, 객체가 없으면 null을 검색합니다.

다른 속성을 사용하거나 여러 유형의 객체에서 객체를 찾아야 하는 상황이 발생할 수도 있습니다. 이 문제를 해결하려면 FindUtils와 같은 유틸리티 클래스를 도입할 수 있습니다.

public final class FindUtils {
    public static <T> T findByProperty(Collection<T> col, Predicate<T> filter) {
        return col.stream().filter(filter).findFirst().orElse(null);
    }
}
로그인 후 복사

이 유틸리티 클래스는 지정된 기준에 따라 개체를 검색하는 데 사용할 수 있는 일반적인 방법을 제공합니다.

더 나아가 를 사용하면 CarnetUtils와 같이 각 개체 유형에 대한 특정 유틸리티 클래스를 만들 수 있습니다.

public final class CarnetUtils {
    public static Carnet findByCodeTitre(Collection<Carnet> listCarnet, String codeTitre) {
        return FindUtils.findByProperty(listCarnet, carnet -> codeTitre.equals(carnet.getCodeTitre()));
    }

    // Similar methods for finding by other properties
}
로그인 후 복사

이러한 유틸리티 클래스를 사용하면 특정 속성에 관계없이 ArrayList 내에서 객체를 쉽고 유연하게 검색할 수 있습니다.

위 내용은 특정 속성을 기반으로 ArrayList에서 개체를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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