7-8 jmu-Java-04面向对象进阶-01-接口-Comparable 分数 20 作者 郑如滨 单位 集美大学 编写实现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 //这行是标识信息
时间: 2024-02-11 20:08:09 浏览: 141
好的,我明白了。以下是符合要求的PersonSortable类的代码:
```java
import java.util.*;
public 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 + "-" + age;
}
@Override
public int compareTo(PersonSortable other) {
int nameCmp = name.compareTo(other.name);
if (nameCmp != 0) {
return nameCmp;
} else {
return Integer.compare(age, other.age);
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
PersonSortable[] persons = new PersonSortable[n];
for (int i = 0; i < n; i++) {
String name = input.next();
int age = input.nextInt();
persons[i] = new PersonSortable(name, age);
}
Arrays.sort(persons);
for (int i = 0; i < n; i++) {
System.out.println(persons[i]);
}
System.out.println(Arrays.toString(PersonSortable.class.getInterfaces()));
}
}
```
你可以将上述代码复制到你的Java开发环境中运行,检查它是否符合要求。
阅读全文