可能重复:
Java两个字段排序问题
我有用户对象,比如
class user
{
String firstName;
String lastName;
}
我有一个列表
,其中包含这些对象,我必须按名字对其进行排序,如果名字匹配,则只按姓氏排序。
如果您实现Comparable并使用自己的compareTo
方法来满足您的需求。
另一种选择是使用自定义比较器
,如许多其他答案所示。
这里有一篇展示这两种方法的文章。
这里有几种方法。
您可以先实现一个比较器,然后在标准Java集合库中使用它对集合进行排序,例如集合。排序()
Comparator<MyObject> comparator = ....
Collections.sort(listOfObjects, comparator); // note- will sort in place
另一种选择是让您的对象实现可比性。然后,这将为对象引入本机排序顺序。
请注意,您可以同时实现这两种方法。当您想实现不同的排序策略(例如按名称、日期、大小等)时,前者很有用。如果您想利用本机排序的概念和Java库中的标准排序函数,后者很有用。
查看关于对象排序的Java教程
我有一个Arraylist,我想按两个属性对ArrayList进行排序1。按名称(字母顺序)2。按自定义键 更多解释-: '
问题内容: 我的应用程序包含大量对象,我将它们进行字符串化并将其保存到磁盘。不幸的是,当数组中的对象被操纵并且有时被替换时,对象上的属性以不同的顺序列出(它们的创建顺序?)。当我在数组上执行JSON.stringify()并将其保存时,一个diff显示以不同顺序列出的属性,当尝试使用diff和合并工具进一步合并数据时,这很烦人。 理想情况下,我想在执行字符串化之前或作为字符串化操作的一部分,按字母
问题内容: 我需要通过对象属性之一的一个属性比较对象数组。 我在做 : 它没有编译,有人知道怎么做吗? 谢谢。 问题答案: 这是代码中导致错误的部分 您可以创建对特定类型的任意对象的(静态或非静态)方法的引用。对任何类型的对象的方法的引用如下所示: 但是方法引用不是对象,并且没有成员可以访问。使用此代码,您尝试访问引用的成员变量(并且不能) 另外,方法引用不是类,因此您不能从它们中获取另一个方法引
问题内容: 如果我有一个JavaScript对象,例如: 有没有一种方法可以基于值对属性进行排序?这样我最终 问题答案: 将它们移动到一个数组,对该数组进行排序,然后将其用于您的目的。这是一个解决方案: 拥有数组后,您可以按自己喜欢的顺序从数组中重建对象,从而完全实现了您打算要做的事情。在我所知道的所有浏览器中都可以使用,但这取决于实现的怪癖,并且可能随时中断。您永远不应假设JavaScript对
我读过关于使用比较器对数组列表进行排序的文章,但在所有示例中,人们都使用了,根据一些研究,这是一种用于字符串的方法。 我希望按照自定义对象的属性之一对其ArrayList进行排序:日期对象()。通常我会通过来比较它们,所以我想知道我是否可以写出如下内容: