使用Streams对哈希图(对象)列表进行排序和过滤

时间:2017-10-23 15:01:13

标签: java arraylist java-8 hashmap

我有一些哈希图: List <HashMap<String, Object>> objects 它是以下对象的列表:

{
    "name": "mark",
    "age": 12,
    "present": false,
    "strength": 11
}

现在,我想以有效的方式通过某些属性和过滤器对此列表进行排序。

在此之后,我想从给定列表中获取一些页面。

String sortBy = "name";
Integer ageFilter = 1;
Integer numPage;
Integer pageSize;


if (ageFilter != null){
    sortedAndFiltred = objects.sortBy(sortBy).filter(age > 100);
}
else {
    sortedAndFiltred = objects.sortBy(sortBy);
}


List <HashMap> page = sortedAndFiltred.getPage(numPage);

您能告诉我如何使用Java 8吗? 我正在寻找一些优雅的方式。

1 个答案:

答案 0 :(得分:-1)

按年龄过滤地图

map.sort((o1, o2) -> o1.getAge() - o2.getAge());

或例如按名称

Collections.sort(map, (o1, o2) -> o1.getName().compareTo(o2.getName()));