1首先你没有导包,理论上说根本不能运行
2你的
public int compare(Integer o1, Integer o2) {
int num = o2 - 01;
return num == 0 ? 1:num;
}
把o1写成了01
用记事本给你调试也是累死我了,新学员还没装eclipse
- import java.util.TreeSet;
- import java.util.Scanner;
- import java.util.Comparator;
- class Test6 {
- /**
- * 程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印.
- * 分析:
- * 1:实现键盘录入,输入整数未知,所以使用while循环,因为要输入quit时结束输入,所以,录入的整数为字符串类型
- * 2:将每个字符串转成基本类型
- * 3:创建TreeSet集合,实现comparator接口,并重写compare方法,定义规则,倒序
- * 4:打印
- */
- public static void main(String[] args) {
- //1:实现键盘录入,输入整数未知,所以使用while循环,因为要输入quit时结束输入,所以,录入的整数为字符串类型
- Scanner sc= new Scanner(System.in);
- System.out.println("请输入任意个整数,以quit结束。");
- //3:创建TreeSet集合,实现comparator接口,并重写compare方法,定义规则,倒序
- TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {
- @Override
- public int compare(Integer o1, Integer o2) {
- int num = o2 - o1;
- return num == 0 ? 1:num;
- }
- });
- while (true) {
- String line = sc.nextLine();
- if ("quit".equals(line)) {
- break;
- }
- //2:将每个字符串转成基本类型
- int i = Integer.parseInt(line);
- ts.add(i);
- }
- for (Integer i : ts) {
- System.out.println(i);
- }
- }
- }
复制代码
|