A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tujiu888 中级黑马   /  2016-2-9 17:03  /  431 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 才能实现倒序呢

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马