Kotlin在TreeMap上进行排序

什么是实现这一目标的科特林方式:

public static TreeMap<Integer, ArrayList<HomeItem>> getHomeItemListsSeparatedByPageId(List<HomeItem> homeItemsList) { if (homeItemsList.size() == 0) { return new TreeMap<>(); } TreeMap<Integer, ArrayList<HomeItem>> map = new TreeMap<>(); for (HomeItem hl : homeItemsList) { if (map.get(hl.getVisiblePageId()) == null) { map.put(hl.getVisiblePageId(), new ArrayList<>()); } map.get(hl.getVisiblePageId()).add(hl); } return map; } 

我试图将groupBy应用于我的args列表,但它返回一个HashMap。

编辑:基本上,原来的列表被查询,它是由visiblePageId分组,并添加到一个treemap的关键是id和价值是与该id的项目

您可以使用groupByTo方法并传递一个TreeMap实例作为第一个参数。

 fun getHomeItemListsSeparatedByPageId(homeItems: List<HomeItem>) = homeItems.groupByTo(TreeMap()) { it.visiblePageId } 
Interesting Posts