속성을 기반으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!