TreeSet类的排序
来源:互联网 发布:卢比奥生涯数据 编辑:程序博客网 时间:2024/05/17 07:20
一 TreeSet类的排序概述
TreeSet采用红黑树的数据结构对元素进行排序。TreeSet支持两种排序方法:自然排序和定制排序。
- 自然排序:TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排列。
- 定制排序:TreeSet借助于Comparator接口的帮助。该接口里包含一个的int compare(T o1, T o2)方法,该方法用于比较o1和o2的大小。
二 定制排序应用
1 代码示例
import java.util.*;class M{int age;public M(int age){this.age = age;}public String toString(){return "M[age:" + age + "]";}}public class TreeSetTest4{public static void main(String[] args){// 此处Lambda表达式的目标类型是ComparatorTreeSet ts = new TreeSet((o1 , o2) ->{M m1 = (M)o1;M m2 = (M)o2;// 根据M对象的age属性来决定大小,age越大,M对象反而越小return m1.age > m2.age ? -1: m1.age < m2.age ? 1 : 0;});ts.add(new M(5));ts.add(new M(-3));ts.add(new M(9));System.out.println(ts);}}
2 代码结果
[M[age:9], M[age:5], M[age:-3]]
3 代码说明
本代码在创建TreeSet集合对象时,提供一个Comparator对象与该TreeSet集合关联,由该Comparator对象负责集合元素的逻辑排序。由于Comparator是一个函数式接口,因此可使用Lambda表达式代替Comparator。
0 0
- TreeSet类的排序
- TreeSet类的排序问题
- Treeset类的排序问题
- TreeSet类的排序问题
- 算法 -TreeSet类的排序问题
- 强大的排序集合类TreeSet
- TreeSet的排序
- TreeSet的定制排序
- TreeSet的排序问题
- 泛型 Treeset的排序
- TreeSet的排序原理
- 关于TreeSet的排序问题
- 关于TreeSet的排序问题 .
- 关于TreeSet的排序问题
- 【java】TreeSet的自然排序
- 【java】TreeSet的定制排序
- TreeSet的使用:自然排序
- 关于TreeSet的排序问题
- Java对称加密算法
- Set最常见子类HashSet
- Set集合另一强悍的类LinkedHashSet
- JNI中文手册
- 强大的排序集合类TreeSet
- TreeSet类的排序
- 关于CSDN登录提示手机号验证的问题
- TreeSet类的常见误用
- Numpy详细教程
- 专为枚举类设计的集合类EnumSet
- 根据文档批量复制文件
- Git学习笔记03_用Git和GitHub管理项目仓库记录
- C#去除字符串中的中文、字母、数字
- 勤写案例,防止遗忘