java一个对象根据另一个集合的顺序进行排序
/** * 根据另外一个id集合来排序当前资源集合 * @param resources * @param resourceIds * @return */ private List<Resource> sortByIdList(List<Resource> resources, List<String> resourceIds) { List<Resource> result = new ArrayList<Resource>(); if(!CollectionUtils.isEmpty(resources)){ //初始化result,为了排序 for(int i= 0; i < resources.size() ;i++){ result.add(new Resource()); } for(Resource resource:resources){ String id = resource.getId(); result.set(resourceIds.indexOf(id), resource); } } return result; }
简单粗暴的排序,先按照对象集合的大小初始化一个结果集合,然后遍历原本查出来的集合根据其中的某个字段在我们需要排序顺序的集合中的序号来替换结果集合中的对象即可.