美文网首页Java Web知识Java学习笔记
对集合中的元素进行排序的简单方法

对集合中的元素进行排序的简单方法

作者: GuaKin_Huang | 来源:发表于2016-11-13 15:35 被阅读36次

/**比较中文并排序
 * Created by hp on 2016/11/7.
 */

public class CollatorComparator implements Comparator<String> {

    Collator collator = Collator.getInstance();
    @Override
    public int compare(String o1, String o2) {
        CollationKey key1 = collator.getCollationKey(o1);
        CollationKey key2 = collator.getCollationKey(o2);
        return key1.compareTo(key2);
    }
}

例子:

public class Main {
    public static void main(String[] args){
        Student student1 = new Student("张三", 15, "男");
        Student student2 = new Student("李三", 45, "男");
        Student student3 = new Student("王三", 55, "男");
        Student student4 = new Student("黄三", 15, "男");
        Student student5 = new Student("陈列", 75, "男");
        Student student6 = new Student("电话费", 95, "男");

        //对于list而言
        
        ArrayList<Student> list = new ArrayList<>();
        list.add(student1);
        list.add(student2);
        list.add(student3);
        list.add(student4);
        list.add(student5);
        list.add(student6);

        //排序前
        for (Student s :
                list) {
            System.out.println(s);
        }
        System.out.println();

        //可以通过内部类方式实现
        Collections.sort(list, new Comparator<Student>() {
            Collator collator = Collator.getInstance();
            @Override
            public int compare(Student o1, Student o2) {
                CollationKey collationKey1 = collator.getCollationKey(o1.getName());
                CollationKey collationKey2 = collator.getCollationKey(o2.getName());
                return collationKey1.compareTo(collationKey2);
            }
        });

        //排序后
        for (Student s :
                list) {
            System.out.println(s);
        }

        System.out.println();


        //对于map而言
        // 可以另外实现一个类Comparator
        TreeMap<String, Student> treeMap = new TreeMap<>(new CollatorComparator());

        treeMap.put("张三", student1);
        treeMap.put("李三", student2);
        treeMap.put("王三", student3);
        treeMap.put("黄三", student4);
        treeMap.put("陈列", student5);
        treeMap.put("电话", student6);


        Set<String> strings = treeMap.keySet();

        for (String str :
                strings) {
            System.out.println(str);
        }
    }
}

相关文章

  • 对集合中的元素进行排序的简单方法

    例子:

  • scala的数据结构——集

    scala当中的集是不重复元素的集合,集不会对元素进行排序,而且是以“哈希”方法对元素进行组织,所以使用集合的时候...

  • Collections类常用方法总结

    Android中对list的日期元素进行排序Android list按照时间排序的问题 一. sort对集合进行排...

  • Java集合框架 -- 04 Collections工具类

    Collections 工具类里提供了大量方法,对集合元素进行排序,查询,修改等操作。还可以将集合包装成线程安全的...

  • Java自然排序Comparable使用方法解析

    首先说明用TreeSet集合存储自定义时,无参构造方法使用的是自然排序对元素进行排序的 然后,使用自然排序的前提是...

  • python入门笔记,深夜放毒

    sort() 改方法用来对列表中的元素进行排序 sort()方法默认是直接比较列表中的元素大小 在sort()可以...

  • 排序算法1: 冒泡排序算法

    C++ 冒泡排序算法的实例源代码,一些排序方法的代码集锦,该函数模板使用冒泡法对集合元素进行排序,参数说明: co...

  • Java8 - 对集合排序

    对List进行排序 当我们需要对集合的元素进行排序的时候,可以使用java.util.Comparator 创建一...

  • collection(8)--sortBy

    对集合内的元素进行排序,依据每个元素进行某异步操作后产生的值,从小到大排序。 测试数据: 代码: 结果: 如果出错...

  • Collections工具类

    Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序等操作。 ...

网友评论

    本文标题:对集合中的元素进行排序的简单方法

    本文链接:https://www.haomeiwen.com/subject/jkscpttx.html