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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public 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 - 01;
                                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);
                }
        }

}

5 个回复

倒序浏览
该导的包都导了吗
回复 使用道具 举报
目测没有错误
回复 使用道具 举报
1首先你没有导包,理论上说根本不能运行
2你的
public int compare(Integer o1, Integer o2) {
                                int num = o2 - 01;
                                return num == 0 ? 1:num;
                        }
把o1写成了01
用记事本给你调试也是累死我了,新学员还没装eclipse
  1. import java.util.TreeSet;
  2. import java.util.Scanner;
  3. import java.util.Comparator;
  4. class Test6 {

  5.         /**
  6.          * 程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印.
  7.          *         分析:
  8.          *         1:实现键盘录入,输入整数未知,所以使用while循环,因为要输入quit时结束输入,所以,录入的整数为字符串类型
  9.          *         2:将每个字符串转成基本类型
  10.          *         3:创建TreeSet集合,实现comparator接口,并重写compare方法,定义规则,倒序
  11.          *         4:打印
  12.          */
  13.         public static void main(String[] args) {
  14.                 //1:实现键盘录入,输入整数未知,所以使用while循环,因为要输入quit时结束输入,所以,录入的整数为字符串类型
  15.                 Scanner sc= new Scanner(System.in);
  16.                 System.out.println("请输入任意个整数,以quit结束。");
  17.                 //3:创建TreeSet集合,实现comparator接口,并重写compare方法,定义规则,倒序
  18.                 TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {

  19.                         @Override
  20.                         public int compare(Integer o1, Integer o2) {
  21.                                 int num = o2 - o1;
  22.                                 return num == 0 ? 1:num;
  23.                         }
  24.                 });
  25.                 while (true) {
  26.                         String line = sc.nextLine();
  27.                         if ("quit".equals(line)) {
  28.                                 break;
  29.                         }
  30.                         //2:将每个字符串转成基本类型
  31.                         int i = Integer.parseInt(line);
  32.                         ts.add(i);
  33.                 }
  34.                 for (Integer i : ts) {
  35.                         System.out.println(i);
  36.                 }
  37.         }

  38. }
复制代码

回复 使用道具 举报
补充一个运行截图

QQ截图20160107230610.png (3.87 KB, 下载次数: 13)

QQ截图20160107230610.png
回复 使用道具 举报
比较器错误,补充一点, 倒序输出,也可以倒着遍历集合
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马