package com.tanpu.community.util; import com.tanpu.community.dao.entity.community.ThemeEntity; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; public class RankUtils { /** * 根据id排序主题对象 * @param list 主题 * @param ids 主题Id,list中可重复 * @return */ public static List<ThemeEntity> sortThemeEntityByIds(List<ThemeEntity> list, List<String> ids){ int count=0; HashMap<String, Integer> indexMap = new HashMap<>(); for (String id : ids) { //list中出现重复元素时,优化取第一次出现的顺序 if (!indexMap.containsKey(id)){ indexMap.put(id,count++); } } List<ThemeEntity> collect = list.stream().filter(o -> indexMap.containsKey(o.getThemeId())) .sorted(Comparator.comparingInt(o -> indexMap.get(o.getThemeId()))) .collect(Collectors.toList()); return collect; } }