我正在为 Web 应用程序实现搜索、排序和分页逻辑,我需要找到一种有效且可能不冗长的方法来对通用类型列表 ( List<T>
) 的项目进行排序和过滤。我想动态传递列表排序所依据的字段(例如,作为字符串)。
使用 Guava 库是一个好主意吗?或者我可以使用标准 java 库获得相同的结果吗?我从未使用过 Guava,如果我只将它们用于次要实用程序,我会避免向我的项目添加额外的库。
注意我也在我的项目中使用 Spring。有一些有用的实用程序来处理集合吗?
在 .NET 应用程序中,我通常使用 LINQ 来操作和查询集合,我想找到类似的方法或至少是此方法的简单替代方法...您能帮助我吗?
注意
我需要按任意字段排序自定义对象,因此如果我有 Person
对象 name
, surname
和age
字段,我需要按其中之一对列表进行排序。
最佳答案
标准 Java 库提供用于一次性排序的 Collections.sort()
以及用于永久排序集合的 TreeSet
和 TreeMap
。
集合中的对象需要实现可比较(在这种情况下,上述所有对象的默认行为是使用自然顺序进行排序),或者您可以为排序操作指定一个Comparator
(或树*
)。如果您指定了Comparator
,它将覆盖默认排序行为并完全取代它。
关于java - Java 中通用列表的过滤和排序项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21093731/