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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public static void main(String[] args) {
  2.                 //1,定义一个List集合,并存储重复的无序的字符串
  3.                 ArrayList<String> list = new ArrayList<>();
  4.                 list.add("aaa");
  5.                 list.add("aaa");
  6.                 list.add("ccc");
  7.                 list.add("ddd");
  8.                 list.add("fffffffffff");
  9.                 list.add("heima");
  10.                 list.add("itcast");
  11.                 list.add("bbbb");
  12.                 list.add("aaa");
  13.                 list.add("aaa");
  14.                
  15.                 //2,定义方法对其排序保留重复
  16.                 sort(list);
  17.                
  18.                 //3,打印list
  19.                 System.out.println(list);
  20.         }
  21.        
  22.         /*
  23.          * 定义方法,排序并保留重复
  24.          * 分析:
  25.          * 1,创建TreeSet集合对象,因为String本身就具备比较功能,但是重复不会保留,所以我们用比较器
  26.          * 2,将list集合中所有的元素添加到TrreSet集合中,对其排序,保留重复
  27.          * 3,清空list集合
  28.          * 4,将TreeSet集合中排好序的元素添加到list中
  29.          */
  30.         public static void sort(List<String> list) {
  31.                 //1,创建TreeSet集合对象,因为String本身就具备比较功能,但是重复不会保留,所以我们用比较器
  32.                 TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {

  33.                         @Override
  34.                         public int compare(String s1, String s2) {
  35.                                 int num = s1.compareTo(s2);                                        //比较内容为主要条件
  36.                                 return num == 0 ? 1 : num;                                        //保留重复
  37.                         }
  38.                 });
  39.                 //2,将list集合中所有的元素添加到TrreSet集合中,对其排序,保留重复
  40.                 ts.addAll(list);
  41.                 //3,清空list集合
  42.                 list.clear();
  43.                 //4,将TreeSet集合中排好序的元素添加到list中
  44.                 list.addAll(ts);
  45.         }

  46. }
复制代码

1 个回复

正序浏览
不错不错,让返回值为1,避免去重,不过基础是建立在String类已经重写了比较器了,这样解决了自己写比较方法了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马