public List<Item> getItems(){ List<Items> result = new ArrayList<>(); for (Items item : items) { if (item.getTag().equals("Java")) { result.add(item); } } return result; }
使用Stream操作的方案。 过程:List -> Filter -> List
1 2 3 4 5
public List<Item> getItems(){ return items.stream() .filter(item -> item.getTag().equals("Java")) .collect(Collectors.toList()); }
分组
过程:List -> Stream -> Map<String, ?>
1 2 3 4
public Map<String, List<Item>> groupByTag() { return items.stream() .collect(Collectors.groupingBy(Item::getTag)); }
排序
1 2 3
Collections.sort(items, (String a, String b) -> b.compareTo(a)); // 简写 Collections.sort(items, (a, b) -> b.compareTo(a));