我有一个自定义类如下。
class customclass {
int a;
int b;
}
我已将此类的对象放在链表中。
LinkedList<customclass> ll = new LinkedList<customclass>();
customclass c1= new customclass();
c1.a=1;
c1.b=5;
ll.add(c1);
customclass c2= new customclass();
c2.a=10;
c2.b=5;
ll.add(c2);
customclass c3= new customclass();
c2.a=11;
c2.b=15;
ll.add(c3);
如何使用Collections.sort对&#34; a&#34;的值进行排序。来自类customclass的每个对象。
答案 0 :(得分:1)
首先,请正确命名您的课程。
其次,请使用适当的封装。
所以我们有:
class Customclass {
private final int a;
private final int b;
public Customclass(int a, int b) {
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public int getB() {
return b;
}
}
现在对我们进行排序:
final List<Customclass> ll = new LinkedList<>();
Collections.sort(ll, Comparator.comparing(Customclass::getA));
请注意,我使用菱形表示法<>
来避免两次声明List
的类型,并且我使用接口List
,而不是实现,{{1在LHS上。
答案 1 :(得分:0)
Collections.sort(l1, new Comparator<customclas>() {
@Override
public int compare(customclas o1, customclas o2) {
if (o1.a < o2.a) return -1;
else if (o1.a > o2.a) return 1;
else return 0;
}
});
答案 2 :(得分:0)
Comparator<customclass> comparator = new Comparator<customclass>() {
public int compare(customclass c1,customclass c2) {
//return c2.a - c1.a;
// use your logic
// updating as per borris
Integer.compare(c1.a,c2.a);
}
};
Collections.sort(ll, comparator);