號,
權重1,
重量2
}導入?Java . util . comparator;
公共?班級?我的比較器?器物?比較器& lt學生& gt{
私人?SortBy?sortBy
公共?我的比較器?(SortBy?排序方式){
這個. sortBy?=?sortBy
}
@覆蓋
公共?int?比較(學生?s1,?學生?s2)?{
切換?(this.sortBy)?{
案子?重量1:
回歸?s1.getWeights1()?-?S2 . getweights 1();
案子?重量2:
回歸?s1.getWeights2()?-?S2 . getweights 2();
默認值:
回歸?s1.getNumber()?-?S2 . get number();
}
}
}導入?Java . util . collections;
進口?Java . util . comparator;
進口?Java . util . linked list;
進口?Java . util . list;
公共?班級?學生?{
私人?int?號碼;
私人?int?權重1;
私人?int?權重2;
公共?學生(int?號,?int?權重1,?int?權重2)?{
這個號碼?=?號碼;
this.weights1?=?權重1;
這個. weights2?=?權重2;
}
公共?int?getNumber()?{
回歸?這個. number;
}
公共?int?getWeights1()?{
回歸?this . weights 1;
}
公共?int?getWeights2()?{
回歸?this.weights2
}
公共?靜電?作廢?main(String[]?args){
決賽?學生?s1?=?新的?學生(1,?20,?300);
決賽?學生?s2?=?新的?學生(2,?10,?100);
決賽?學生?s3?=?新的?學生(3,?30,?200);
決賽?列表& lt學生& gt?數組?=?新的?LinkedList & lt學生& gt();
array . add(s 1);
array . add(S2);
array . add(S3);
決賽?比較器& lt學生& gt?數字比較器?=?新的?MyComparator(SortBy。號);
Collections.sort(array,數字比較器);
System.out.println("排序?被誰?號”);
System.out.print("Number:");
對於(學生?s:?數組){
System.out.print(s.getNumber()?+?"?");
}
system . out . println(" \ n \ n ");
決賽?比較器& lt學生& gt?重量1比較器1?=?新的?MyComparator(SortBy。weights 1);
System.out.println("排序?被誰?weights 1”);
System.out.print("Number:");
Collections.sort(array,weights 1 comparator 1);
對於(學生?s:?數組){
System.out.print(s.getNumber()?+?"?");
}
system . out . println(" \ n \ n ");
決賽?比較器& lt學生& gt?weights2Comparator?=?新的?MyComparator(SortBy。權重2);
System.out.println("排序?被誰?weights 2”);
System.out.print("Number:");
Collections.sort(array,weights 2 comparator);
對於(學生?s:?數組){
System.out.print(s.getNumber()?+?"?");
}
system . out . println(" \ n \ n ");
}
}排序?被誰?數字
編號:?1?2?三
排序?被誰?重量1
編號:?2?1?三
排序?被誰?重量2
編號:?2?3?1