我有大约一千个元素的大型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
表示在列表中。