我想排序基于两个属性,但在一定条件下的列表中。 下面的类有两个属性 - memberid,membernumber。值如下。排序列表
obj()
{
memberid;
membernumber;
}
Values Assigned :
obj1 = {1,15}
obj2 = {3,10}
obj3 = {2,20}
obj4 = {2,10}
obj5 = {3,15}
obj6 = {4,25}
obj7 = {2,50}
我们需要为排序:
首先排序是基于memberId
,如果会员ID是相同的排序是基于membernumber
最高membernumber
应该放在第一位。所以输出应该是:
obj1 = {1,15}
obj7 = {2,50} >> As 2 are multiple sort on membernumber as highest being 50
obj3 = {2,20}
obj4 = {2,10}
obj5 = {3,15}
obj2 = {3,10}
obj6 = {4,25}
我能够使用它基于collections.sort的成员Id排序,但我不知道如何有一个平等的条件和排序它的基础上MemberNumber。
任何帮助表示赞赏。
排序类。我正在使用Collections.sort()
其中。
public class sortId implements Comparator<obj > {
public int compare(obj o1, obj o2)
{
int id1 = o1.getmemberId();
int id2 = o2.getmemberId();
return id1 - id2 ;
}
}
覆盖的collection.sort方法 –
我不知道这是一个重复,或者如果你实际上是在寻找比较,你需要的功能,但无论如何 - 这里看看:https://stackoverflow.com/问题/ 2839137 /如何使用的比较器功能于Java到排序 – MByD
@MByD - 这是比较正常执行。我将添加我在我的问题中写的类比较器类。它只在memberId不知道如何编写membernumber的逻辑,我希望它只为具有相同memberIds的对象排序memberNumber。 – Suraj