编写实现Comparable接口的PersonSortable类,使其按name以及age排序
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所实现的所有接口
输入样例:
5
zhang 15
zhang 12
wang 14
Wang 17
li 17
输出样例:
Wang-17
li-17
wang-14
zhang-12
zhang-15
//这行是标识信息
代码长度限制16 KB
时间限制400 ms
内存限制64 MB
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
PersonSortable[] personSortables = new PersonSortable[n];
for (int i = 0; i < n; i++) {
personSortables[i] = new PersonSortable(sc.next(), sc.nextInt());
}
Arrays.sort(personSortables);
for (PersonSortable per : personSortables) {
System.out.println(per);
}
System.out.println(Arrays.toString(PersonSortable.class.getInterfaces()));
}
}
class PersonSortable implements Comparable{
private String name;
private int age;
public PersonSortable() {
}
public PersonSortable(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return name + "-" + age;
}
@Override
public int compareTo(Object o) {
PersonSortable per = (PersonSortable) o;
int x = this.name.compareTo(per.name);
if(x != 0){
return x;
}else {
if(this.age > per.age) return 1;
else if(this.age < per.age) return -1;
else return 0;
}
}
}
![](https://img-blog.csdnimg.cn/img_convert/1885f3661e5b95ecb38e0dcc102a2203.png)