ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA基础(TreeSet不去重按字典顺序排序)

2019-07-02 09:23:45  阅读:645  来源: 互联网

标签:JAVA String 重复 list add 集合 TreeSet 字典


1,需求:

  • 在一个集合中存储了无序并且重复的字符串,定义一个方法,让其有序(字典顺序),而且还不能去除重复

 

2,分析:

  • 定义一个List集合,并存储重复的无序的字符串

  • 定义方法对其排序保留重复

  • 打印List集合

import java.util.ArrayList;

import java.util.Comparator;

import java.util.List;

import java.util.TreeSet;



public class Test4 {

    public static void main(String[] args) {

        //1,定义一个List集合,并存储重复的无序的字符串

        ArrayList<String> list = new ArrayList<>();

        list.add("aaa");

        list.add("aaa");

        list.add("ccc");

        list.add("ddd");

        list.add("fffffffffff");

        list.add("heima");

        list.add("itcast");

        list.add("bbbb");

        list.add("aaa");

        list.add("aaa");

        

        //2,定义方法对其排序保留重复

        sort(list);

        

        //3,打印list

        System.out.println(list);

    }

    

    /*

     * 定义方法,排序并保留重复

     * 分析:

     * 1,创建TreeSet集合对象,因为String本身就具备比较功能,但是重复不会保留,所以我们用比较器

     * 2,将list集合中所有的元素添加到TrreSet集合中,对其排序,保留重复

     * 3,清空list集合

     * 4,将TreeSet集合中排好序的元素添加到list中

     */

    public static void sort(List<String> list) {

        //1,创建TreeSet集合对象,因为String本身就具备比较功能,但是重复不会保留,所以我们用比较器

        TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {



            @Override

            public int compare(String s1, String s2) {

                int num = s1.compareTo(s2);                    //比较内容为主要条件

                return num == 0 ? 1 : num;                    //保留重复

            }

        });

        //2,将list集合中所有的元素添加到TrreSet集合中,对其排序,保留重复

        ts.addAll(list);

        //3,清空list集合

        list.clear();

        //4,将TreeSet集合中排好序的元素添加到list中

        list.addAll(ts);

    }

}

 

标签:JAVA,String,重复,list,add,集合,TreeSet,字典
来源: https://blog.csdn.net/Cricket_7/article/details/94429794

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有