50,523
社区成员
发帖
与我相关
我的任务
分享
像我上面那样实现Comparable接口再重写CompareTo方法就可以自己设置怎么比较两个类的大小,这种方法是可以使用java的数组或者List本身的sort进行排序 国家类大小要怎么做啊。可以打一下嘛
public class Country implements Comparable<Country>{
public int gold_num;
public int silver_num;
public int bronze_num;
public Country(int gold_num, int silver_num, int bronze_num) {
super();
this.gold_num = gold_num;
this.silver_num = silver_num;
this.bronze_num = bronze_num;
}
public int getGold_num() {
return gold_num;
}
public void setGold_num(int gold_num) {
this.gold_num = gold_num;
}
public int getSilver_num() {
return silver_num;
}
public void setSilver_num(int silver_num) {
this.silver_num = silver_num;
}
public int getBronze_num() {
return bronze_num;
}
public void setBronze_num(int bronze_num) {
this.bronze_num = bronze_num;
}
@Override
public String toString() {
return "Country [gold_num=" + gold_num + ", silver_num=" + silver_num + ", bronze_num=" + bronze_num + "]";
}
@Override
public int compareTo(Country o) {
if(this.gold_num>o.gold_num){
return 1;
}else if(this.gold_num<o.gold_num){
return -1;
}else if(this.gold_num==o.gold_num){
if(this.silver_num>o.silver_num){
return 1;
}else if(this.silver_num<o.silver_num){
return -1;
}else if(this.silver_num==o.silver_num){
if(this.bronze_num>o.bronze_num){
return 1;
}else if(this.bronze_num<o.bronze_num){
return -1;
}else if(this.silver_num==o.silver_num){
return 0;
}
}
}
return 0;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Country> countries=new ArrayList<Country>();
countries.add(new Country(1,3,5));
countries.add(new Country(5,4,5));
countries.add(new Country(8,3,6));
countries.add(new Country(1,4,5));
countries.add(new Country(1,4,6));
countries.add(new Country(1,3,7));
countries.add(new Country(2,7,5));
countries.add(new Country(9,4,5));
countries.add(new Country(9,3,5));
countries.add(new Country(9,4,5));
System.out.println(countries);
Collections.sort(countries);
Collections.reverse(countries);
System.out.println(countries);
}
}