编写实现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
//这行是标识信息
注意最后一行输出System.out.println(Arrays.toString(PersonSortable.class.getInterfaces()));
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
PersonSortable[] stu = new PersonSortable[n];
for(int i=0;i<n;i++)
{
String s = cin.next();
int j = cin.nextInt();
stu[i]=new PersonSortable(s,j);
}
Arrays.sort(stu);
for(int i=0;i<n;i++)
{
System.out.println(stu[i].toString());
}
System.out.println(Arrays.toString(PersonSortable.class.getInterfaces()));
}
}
class PersonSortable implements Comparable<PersonSortable> { //comparable类型为PersonSortable类型的
String name;
private int age;
public PersonSortable() {
this.name = name;
this.age = age;
}
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;
}
public int compareTo(PersonSortable peo){
if(this.name.compareTo(peo.name)>0)return 1; //若为升序,则返回1(真)
else if(this.name.compareTo(peo.name)<0)return -1; //反之返回-1
else{
if(this.age<stu.age)return -1; //若年龄比比较者小,返回-1(假)
else return 1; //反之返回1
}
}
@Override
public String toString()
{
return name+"-"+age;
}
}