import java.util.*; public class TreeSetExample { public static void main(String args[ ]) { TreeSet<Student> mytree=new TreeSet<Student>(); for(int i=0;i<5;i++) { Scanner read=new Scanner(System.in); System.out.println("学生的姓名:"); String name=read.nextLine( ); System.out.println("输入分数(整数):"); int score=read.nextInt( ); 【代码1】 // 向mytree添加Student对象 } Iterator<Student> te=【代码2】 // mytree返回Iterator对象 while(【代码3】) // 判断te中是否存在元素 { Student stu=【代码4】 // 返回te中的下一个元素 System.out.println(""+stu.name+" "+stu.english); } } } class Student implements Comparable { int english=0; String name; Student(int e,String n) { english=e; name=n; } public int compareTo(Object b) { Student st=(Student)b; return (this.english-st.english); } }
时间: 2023-11-22 22:53:19 浏览: 83
代码1:
```java
mytree.add(new Student(score, name));
```
代码2:
```java
Iterator<Student> te = mytree.iterator();
```
代码3:
```java
while(te.hasNext())
```
代码4:
```java
Student stu = te.next();
```
相关问题
package shiyan; import java.util.Comparator; import java.util.TreeSet; class MyComparator implements Comparator<String> { public int compare(String s1, String s2) { return s1.length() - s2.length(); } } public class ComparatorDemo { public static void main(String[] args) { TreeSet<String> ts = new TreeSet<>(new MyComparator()); ts.add("Jack"); ts.add("Helena"); ts.add("Eve"); System.out.println(ts); } }分析此代码
这段代码实现了一个自定义比较器 `MyComparator`,用来比较 `String` 类型的对象。`MyComparator` 类实现了 `Comparator<String>` 接口,重写了 `compare` 方法,比较两个字符串的长度。
在 `main` 方法中,创建了一个 `TreeSet<String>` 对象 `ts`,并传入 `MyComparator` 对象作为参数,这样 `ts` 中的元素会按照字符串长度从小到大排序。然后向 `ts` 中添加了三个字符串 "Jack","Helena","Eve",最后输出 `ts`,结果为 ["Eve", "Jack", "Helena"],符合预期。
修改代码使其按照姓名首字母数字排序import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; public class sort_student { public static void main(String[] args) { //创建 TreeSet 对象时指定排序器 Comparator TreeSet<student> s = new TreeSet<>(new Comparator<student>() { public int compare(student o1, student o2) { return o1.getAge() - o2.getAge(); } }); // 按照年龄插入数据 s.add(new student("Tom", 18)); s.add(new student("Bob", 14)); s.add(new student("Jack", 16)); s.add(new student("Alice", 13)); s.add(new student("Koltin", 22)); s.add(new student("Abuton", 19)); // 迭代 TreeSet 集合,按照年龄从小到大输出学生信息 Iterator<student> it = s.iterator(); while (it.hasNext()) { student tt = it.next(); sop(tt.getName() + "," + tt.getAge()); } } public static void sop(Object obj) { System.out.println(obj); } }
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class sort_student {
public static void main(String[] args) {
// 创建 TreeSet 对象时指定排序器 Comparator
TreeSet<student> s = new TreeSet<>(new Comparator<student>() {
public int compare(student o1, student o2) {
int result = o1.getName().compareTo(o2.getName());
if (result == 0) {
result = o1.getAge() - o2.getAge();
}
return result;
}
});
// 按照姓名和年龄插入数据
s.add(new student("Tom", 18));
s.add(new student("Bob", 14));
s.add(new student("Jack", 16));
s.add(new student("Alice", 13));
s.add(new student("Koltin", 22));
s.add(new student("Abuton", 19));
// 迭代 TreeSet 集合,按照姓名和年龄从小到大输出学生信息
Iterator<student> it = s.iterator();
while (it.hasNext()) {
student tt = it.next();
sop(tt.getName() + "," + tt.getAge());
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
阅读全文