我有两个像下面这样的ArrayLists;
List<HashMap<String, String>> mapList;
List<myclass> sortedDtos;
顾名思义sortedDtos
已经排序。
`myclass` has a field called `jobNo`
The HashMap has a key called `jobNo`
基本上我想通过比较属性mapList
,根据sortedDtos
订购jobNo
。
如何在Java 8中执行此操作?
这似乎工作正常,也可能更有效率。
List<String> jobNos = new ArrayList();
sortedDtos.stream().forEach(dto -> jobNos.add(dto.getJobNo()));
// sort maplist based on the sorting of the dtos
mapList.sort(Comparator.comparing(el -> jobNos.indexOf(el.get("jobNo"))));
答案 0 :(得分:0)
我会建议以下方式。这种方法涉及提供您自己的自定义比较器来对地图进行排序。
{{1}}