【发布时间】:2018-04-04 04:35:56
【问题描述】:
我有哈希图列表:
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 来做吗? 我正在寻找一些优雅的方式。
【问题讨论】:
-
地图 -> 流 -> 过滤器 -> 字符串
-
不要忘记转换您为比较器提供的函数的结果(即
comparing(m -> (String)m.get("name")))。这同样适用于过滤器。之后,您可以查看stackoverflow.com/questions/28210775/… 以了解如何将您的流划分为块。然后您可以使用Stream#skip()获取所需的页面。
标签: java arraylist java-8 hashmap