版权声明:呀呀呀,小可爱代码要自己敲,不要复制哦。 https://blog.csdn.net/qq_43201999/article/details/90047399
7-2 jmu-Java-04面向对象进阶-01-接口-Comparable
问题描述:
Arrays.sort不能对自定义对象进行排序。现希望对自定义的PersonSortable类的对象,使用Arrays.sort进行排序。
1.编写PersonSortable类
属性:private name(String)、private age(int)
有参构造函数:参数为name,age
toString函数:返回格式为:name-age
实现Comparable接口:实现先对name升序排序,如果name相同则对age进行升序排序
2.main方法中
首先输入n
输入n行name age,并创建n个对象放入数组
对数组进行排序后输出。
最后一行使用System.out.println(Arrays.toString(PersonSortable.class.getInterfaces()));输出PersonSortable所实现的所有接口。
代码:
import java.util.*;
class PersonSortable implements Comparable<PersonSortable> {
private String name;
private int age;
public PersonSortable(String name,int age){
this.name = name;
this.age = age;
}
public String toString(){
return name + "-" + this.age;
}
public int compareTo(PersonSortable stu){
if(this.name.compareTo(stu.name)>0)return 1;
else if(this.name.compareTo(stu.name)<0)return -1;
else{
if(this.age<stu.age)return -1;
else return 1;
}
}
}
public class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
PersonSortable stu[]=new PersonSortable[n];
for(int i=0;i<n;i++) {
String name=sc.next();
int age=sc.nextInt();
stu[i]=new PersonSortable(name,age);
}
sc.close();
java.util.Arrays.sort(stu);
for(int i=0;i<stu.length;i++){
System.out.println(stu[i]);
}
System.out.println(Arrays.toString(PersonSortable.class.getInterfaces()));
}
}
好啦,差不多运行一下就可以啦,如果有优化方案,可以留下哦,祝你好运。