java set 排序的_Set集合排序

java set 排序的_Set集合排序TreeSet使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。通俗一点来说,就是可以按照排序后的列表显示,也可以按照指定的规则排序。Setset=newTreeSet();set.add(“f”);set.add(“a”);set.add(“b”);set.add(“c”);set.add(“d”);set.add(“e”…

大家好,又见面了,我是你们的朋友全栈君。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141026.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 矩阵转置基本性质

    矩阵转置基本性质一个矩阵的转置与本身相乘得到对称矩阵

    2022年6月29日
  • javacv学习之实现matlab中imfill算法(孔洞填充)

    javacv学习之实现matlab中imfill算法(孔洞填充)因生产需要计算图像的面积,首先第一步就是要先将图像中有洞的地方给它填上,网上找了半天说是matlab中的imfill算法就能直接填上,但我对matlab也不熟也不想用它,结果网上搜资料看看到很多C++的博主写的可以直接用opencv搞定,我一想opencv能搞定那肯定javacv也能搞,所以就有了下面的内容。废话不多说直接上代码publicstaticvoidmain(String[]args){System.loadLibrary(Core.NATIVE_LIBRAR

    2022年9月2日
  • UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\U0001f914’ in posit[通俗易懂]

    UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\U0001f914’ in posit[通俗易懂]原码#保存爬取结果(微博评论)result.to_csv(‘egg_comment.csv’,encoding=’gbk’)报错UnicodeEncodeError:’gbk’codeccan’tencodecharacter’\U0001f914’inposit原因网上很多内容都是采用utf8编码的,gbk无法编码字符’\U0001f914’,所以’utf8’格式…

    2022年11月3日
  • Mysql介绍

    Mysql介绍Mysql介绍

    2022年4月22日
  • 吉木萨尔县文化旅游策划案——天山圣地,武侠之都!「建议收藏」

    吉木萨尔县文化旅游策划案——天山圣地,武侠之都!「建议收藏」吉木萨尔县文化旅游策划案——天山圣地,武侠之都!熊大寻旅游策划公司/文2011年熊大寻旅游策划公司受邀对新疆吉木萨尔县进行旅游策划和规划,我们的核心策略是:吉木萨尔有空前的历史性机会——天山旅游并没有真正做起来!天山旅游仅限于天池,每年几十万游客跟天山的品牌严重不匹配。天山旅游目前仅限于自然景观,天山厚重的历史文化呢?到哪里领略?到哪里体验?天山历史文化的中心和重心在哪里?吉木萨尔!新疆旅游…

    2022年6月3日
  • java项目源码分享——适合新手练手的java项目

    java项目源码分享——适合新手练手的java项目源码下载(实例一):jsp开发完整的博研图书馆后台管理系统,不使用框架开发的,太完美了源码下载(实例二):javaWeb图书馆管理系统源码mysql版本源码下载(实例三)GitHub-uboger/LibraryManager:JAVAGUI图书馆管理系统源码下载(实例四):javaswing开发企业人事管理系统源代码下载源码下载(实例一):javaswing开发网…

    2022年7月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号