해당 필드 중 하나에서 특정 순서로 스트림을 정렬하려고합니다.스위치와 같은 Java 스트림 정렬 조건부
이제 스트림을 목록으로 변환하고 스위치를 사용한 다음 원하는 순서로 목록에 다시 결합하여이 작업을 수행하고 있습니다. 이 사용 스트림 분류 방법 과 같은 사용자 정의 비교 또는 무언가를 사용을 달성하기 위해 어떤 변화가 있는지
fruits.forEach(fruit -> { switch (fruit.getName()) { case "Orange": orangesList.add(fruit); break; case "Apple": applesList.add(fruit); break; case "WaterMelon": watermelonList.add(fruit); break; default: otherFruits.add(fruit); break; } }); genericFruitList.addAll(0, orangeList); genericFruitList.addAll(1, applesList); genericFruitList.addAll(2, watermelonList); genericFruitList.addAll(3, otherFruits);
이 궁금하다.
미리 감사드립니다. 특정 순서로 과일을 정렬 할 경우
'Collectors.groupingBy (Fruit :: getName)'은 스위치처럼 이름으로 과일을 그룹화합니다. 그런 다음'addAll'을 이렇게 할 수 있습니다. –
도우미 클래스를 만들면 적절한 목록을 얻을 수 있습니다 : fruitHelper.getList (fruit.getName) –
현재 논리가 이상합니다. 결과적으로'genericFruitList'는'orange, apple, watermelon, other, other, watermelon, apple, orange'가 될 것입니다. 삽입 지점을 지정하는 것을 의미합니까 아니면 마지막에 모두 추가하려고합니까? –