我有大约一千个元素的大型ArrayList。这些元素是用于测试的闪存卡。这些闪存卡均属于13个不同类别之一。如何根据类别将这个大集合分成不同的单独列表?

最佳答案

假设您具有使用FlashCard方法的getCategory()类,则可以使用流来收集和分组这些类。

// Given a list of FlashCard objects
final List<FlashCard> cards = ...

// Convert to stream, and collect them by category.
final Map<String, List<FlashCard>> byCategory = cards.stream()
            .collect(Collectors.groupingBy(FlashCard::getCategory));


现在,地图将类别表示为键,并将该类别中的每个FlashCard表示在列表中。

10-06 07:20