package com.heima.test;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Test06 {
/**
* 程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印.
* 分析
* 1,创建Scanner键盘录入对象
* 2,创建TreeSet集合,并且将集合当中传入comparator比较器
* 3,当输入quit是结束,那么是以字符串的形式进行输入
* 4,判断字符串是否是"quit",不是将字符串转换为Integer对象并添加到TreeSet集合当中
* 5,遍历TreeSet打印每一个元素
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer i1, Integer i2) {
int num = i2.compareTo(i1);
return num == 0 ? -1 : num;
}
});
while (true) {
String line = sc.nextLine();
if ("quit".equals(line)) {
break;
}else{
Integer i = Integer.parseInt(line);
ts.add(i);
}
}
for (Integer integer : ts) {
System.out.println(integer);
}
}
}
public int compare(Integer i1, Integer i2) {
int num = i2.compareTo(i1);
return num == 0 ? -1 : num;
}
为什么必须是i2比较i1 才能实现倒序呢
|
|