TreeSet使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。通俗一点来说,就是可以按照排序后的列表显示,也可以按照指定的规则排序。

Set set = new TreeSet();

set.add("f");

set.add("a");

set.add("b");

set.add("c");

set.add("d");

set.add("e");

System.out.println(set);

1

2

3

4

5

6

7

8

输出:[a, b, c, d, e, f] ,按照排序后输出

若想它倒序输出,可以指定一个规则让他倒序输出

public class TreeSetTest3 {

public static void main(String[] args) {

Set set = new TreeSet(new MyComparator());

set.add("a");

set.add("b");

set.add("c");

set.add("d");

set.add("e");

set.add("A");

for(Iterator iterator = set.iterator();iterator.hasNext();){

System.out.print(iterator.next()+" ");

}

}

}

class MyComparator implements Comparator{

@Override

public int compare(String o1, String o2) {

return o2.compareTo(o1);//降序排列

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

输出:e d c b a A

如果Set集合中放入的是我们自己定义的一个类类型呢?

注意:一定要定义一个排序规则类实现Comparator接口,与上面的方法类似

public class TreeSetTest2 {

public static void main(String[] args) {

Set set = new TreeSet(new PersonComparator());

Person p1 =  new Person(10);

Person p2 =  new Person(20);

Person p3 =  new Person(30);

Person p4 =  new Person(40);

set.add(p1);

set.add(p2);

set.add(p3);

set.add(p4);

for(Iterator iterator = set.iterator();iterator.hasNext();){

System.out.print(iterator.next().score+" ");

}

}

}

class Person{

int score;

public Person(int score){

this.score = score;

}

public String toString(){

return String.valueOf(this.score);

}

}

class PersonComparator implements Comparator{

@Override

public int compare(Person o1, Person o2) {

return o1.score - o2.score;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

输出:10 20 30 40

如果按照一个人的分数的倒序排列,只需要更改compare方法中的o2.score-o1.score

java set 排序的_Set集合排序相关推荐

  1. java中集合的排序_Java中集合排序的两种方法

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...

  2. java怎么给list集合排序_java list集合排序按某一属性排序操作

    我就废话不多说了,大家还是直接看代码吧~ public List sortList(List list){ Collections.sort(list, new Comparator(){ @Over ...

  3. java 集合排序方法_java集合排序方法sort的使用

    转自  http://blog.csdn.net/a1165117473/article/details/6965652 /* * To change this template, choose To ...

  4. java set的数据结构_set(集合)数据结构

    set(集合)是一个非常有用的数据结构.它与列表(list)的行为类似,区别在于set不能包含重复的值. 这在很多情况下非常有用.例如你可能想检查列表中是否包含重复的元素,你有两个选择,第一个需要使用 ...

  5. java comparator排序顺序_Java 集合排序策略接口 Comparator

    1. 前言 最近用到了集合排序(基于 Java 8).现在我能用 Stream 的就用 Stream ,真香!排序可以这么写: List<People> peoples = new Arr ...

  6. 【Java基础篇】集合排序

    所谓集合排序是指对集合内的元素进行排序. 集合工具类Collections中提供了两种排序算法,分别是: Collections.sort(List list) Collections.sort(Li ...

  7. list集合排序_Java面试第七部分 Java的集合

    7.1. HashMap排序题 已知一个 HashMap<Integer,User>集合, User 有 name(String)和 age(int)属性.请写一个方法实现对HashMap ...

  8. Java集合排序及java集合类详解

    Java集合排序及java集合类详解 (Collection, List, Set, Map) 摘要内容 集合是Java里面最常用的,也是最重要的一部分.能够用好集合和理解好集合对于做Java程序的开 ...

  9. java中list元素排序_java list集合元素根据某些字段排序

    一.jdk1.6的环境下 新建ComparatorSort类,并实现Comparator接口,重写compare方法 降序排序:o1的元素>o2的元素,并返回-1:o1的元素小于o2的元素,并返 ...

最新文章

  1. 实现nginx上配置免费证书Let's Encrypt
  2. java创建线程的2种方式
  3. 【OpenCV环境配置】Xcode+OpenCV+pkg-config
  4. 5弹出搜索框_实用小技巧,电脑总是弹出广告,手把手教你永久关闭广告弹窗...
  5. Microsoft Deployment Toolkit 2010 新功能实战之一
  6. 【转】逆变与协变详解
  7. 一起学并发编程 - 优雅关闭
  8. 统计csv词频_分词词频统计
  9. 动态规划 - 最长递增子序列LIS
  10. RMI 异常 no security manager: RMI class loader disabled
  11. mysql中有time吗_mysql中 datatime与timestamp的区别说明
  12. 中文信息处理(六)—— 神经语言模型与词表示(word2vec)
  13. 去掉softmax后Transformer会更好吗?复旦华为诺亚提出SOFT:轻松搞定线性近似
  14. 2013 Office安装aurora公式编辑器
  15. 欧拉公式求四面体的体积
  16. 1、目标检测 RCNN(翻译+标注)
  17. 今天有空,不如来找找“双鸭山大学”的由来吧~
  18. elasticSearch-优化篇
  19. ARM服务器安装CentOS7.4
  20. IDEA+Java+SSM+Mysql+JSP实现Web宠物商城系统

热门文章

  1. 磊科nw336 linux驱动程序,Ubuntu 10.04 安装磊科nw336驱动 rtl8188su rtl8192su
  2. 【Python笔记】获取星期几在指定年份的所有日期
  3. Android修行手册 - VideoView全解-下
  4. android 11.0 wifi密码保存的位置
  5. C语言已知二进制码求循环码,二进制和循环码转换
  6. linux查看gc日志,将GC日志输出到文件
  7. O365 Multi-Geo测试报告
  8. 如何使用HTML,CSS和JavaScript创建 二进制计算器?
  9. 入门--什么是机器码、注册机和注册码
  10. 解决华硕前置音频没声音,但后置音频有声音,没有Realtak音频管理器如何处理的问题