2
Java에서 입력 ArrayList
의 람다 식을 사용하여 HashMap
의 세 개의 레이어를 만들고 싶습니다. 세 개의 레이어는 연, 월, 주이며, 여기에 처음 두 레이어에 대한 코드가 있습니다. 그러나, 두 번째 레이어에서 나는 오류가 발생했습니다 (첫 번째 레이어는 잘 작동합니다).람다 식을 사용하여 중첩 해시 맵을 생성하십시오.
public HashMap<Integer,HashMap<Integer,HashMap<Integer,AbcDetails>>> createHashMapOfTimePeriod(List<AbcDetails> abcDetails){
Map<Integer,List<AbcDetails>>result1=abcDetails.stream().collect(Collectors.groupingBy(AbcDetails::getYear));
Map<Integer,Map<Integer,AbcDetails>>reult2=result1.entrySet().stream().collect(Collectors.groupingBy(e -> (e.getValue().stream().collect(Collectors.groupingBy(AbcDetails::getWeek)))));
return null;
}
당신은 중첩 된
Collector
들과이를 달성 할 수
두 번째 및 세 번째 레이어 데이터가 반복되는 유일한 연도는 고유 한 것입니까? – shridhar
@shridhar 유일한 문제는 내부 대부분의지도 일 수 있습니다. 동일한 해, 달 및 주를 가진 여러 객체가있는 경우 가장 안쪽의지도에 중복 키가 생기며이를 해결할 방법을 결정해야합니다. 그런 중복 키를 설명하기 위해 구조체를'Map >>>'으로 변경할 수 있습니다. –
Eran