java - Java 中通用列表的过滤和排序项目

标签 java collections guava

我正在为 Web 应用程序实现搜索、排序和分页逻辑,我需要找到一种有效且可能不冗长的方法来对通用类型列表 ( List<T> ) 的项目进行排序和过滤。我想动态传递列表排序所依据的字段(例如,作为字符串)。

使用 Guava 库是一个好主意吗?或者我可以使用标准 java 库获得相同的结果吗?我从未使用过 Guava,如果我只将它们用于次要实用程序,我会避免向我的项目添加额外的库。

注意我也在我的项目中使用 Spring。有一些有用的实用程序来处理集合吗?

在 .NET 应用程序中,我通常使用 LINQ 来操作和查询集合,我想找到类似的方法或至少是此方法的简单替代方法...您能帮助我吗?

注意 我需要按任意字段排序自定义对象,因此如果我有 Person对象 name , surnameage字段,我需要按其中之一对列表进行排序。

最佳答案

标准 Java 库提供用于一次性排序的 Collections.sort() 以及用于永久排序集合的 TreeSetTreeMap

集合中的对象需要实现可比较(在这种情况下,上述所有对象的默认行为是使用自然顺序进行排序),或者您可以为排序操作指定一个Comparator(或树*)。如果您指定了Comparator,它将覆盖默认排序行为并完全取代它。

关于java - Java 中通用列表的过滤和排序项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21093731/

相关文章:

java - 使新选项卡的 Java session 无效

java - 使用列表的低延迟

c# - 如何从公共(public)对象列表中检索所有属性值?

java - 为对象列表的子字段调用 Iterables.contains

Java 获取大输入流的大小导致内存不足

java - 无法使按钮对其他 Activity 不可见

java - 如何在 Spring XML 配置中将 long 设置为十六进制

java - 调用 System.exit(0) 后应用程序继续运行 - Java

Python 集合.MappingView

java - 如何在 LoadingCache 中有效存储可能具有多个键的对象