java set 排序的_Set集合排序
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集合排序相关推荐
- java中集合的排序_Java中集合排序的两种方法
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...
- java怎么给list集合排序_java list集合排序按某一属性排序操作
我就废话不多说了,大家还是直接看代码吧~ public List sortList(List list){ Collections.sort(list, new Comparator(){ @Over ...
- java 集合排序方法_java集合排序方法sort的使用
转自 http://blog.csdn.net/a1165117473/article/details/6965652 /* * To change this template, choose To ...
- java set的数据结构_set(集合)数据结构
set(集合)是一个非常有用的数据结构.它与列表(list)的行为类似,区别在于set不能包含重复的值. 这在很多情况下非常有用.例如你可能想检查列表中是否包含重复的元素,你有两个选择,第一个需要使用 ...
- java comparator排序顺序_Java 集合排序策略接口 Comparator
1. 前言 最近用到了集合排序(基于 Java 8).现在我能用 Stream 的就用 Stream ,真香!排序可以这么写: List<People> peoples = new Arr ...
- 【Java基础篇】集合排序
所谓集合排序是指对集合内的元素进行排序. 集合工具类Collections中提供了两种排序算法,分别是: Collections.sort(List list) Collections.sort(Li ...
- list集合排序_Java面试第七部分 Java的集合
7.1. HashMap排序题 已知一个 HashMap<Integer,User>集合, User 有 name(String)和 age(int)属性.请写一个方法实现对HashMap ...
- Java集合排序及java集合类详解
Java集合排序及java集合类详解 (Collection, List, Set, Map) 摘要内容 集合是Java里面最常用的,也是最重要的一部分.能够用好集合和理解好集合对于做Java程序的开 ...
- java中list元素排序_java list集合元素根据某些字段排序
一.jdk1.6的环境下 新建ComparatorSort类,并实现Comparator接口,重写compare方法 降序排序:o1的元素>o2的元素,并返回-1:o1的元素小于o2的元素,并返 ...
最新文章
- 实现nginx上配置免费证书Let's Encrypt
- java创建线程的2种方式
- 【OpenCV环境配置】Xcode+OpenCV+pkg-config
- 5弹出搜索框_实用小技巧,电脑总是弹出广告,手把手教你永久关闭广告弹窗...
- Microsoft Deployment Toolkit 2010 新功能实战之一
- 【转】逆变与协变详解
- 一起学并发编程 - 优雅关闭
- 统计csv词频_分词词频统计
- 动态规划 - 最长递增子序列LIS
- RMI 异常 no security manager: RMI class loader disabled
- mysql中有time吗_mysql中 datatime与timestamp的区别说明
- 中文信息处理(六)—— 神经语言模型与词表示(word2vec)
- 去掉softmax后Transformer会更好吗?复旦华为诺亚提出SOFT:轻松搞定线性近似
- 2013 Office安装aurora公式编辑器
- 欧拉公式求四面体的体积
- 1、目标检测 RCNN(翻译+标注)
- 今天有空,不如来找找“双鸭山大学”的由来吧~
- elasticSearch-优化篇
- ARM服务器安装CentOS7.4
- IDEA+Java+SSM+Mysql+JSP实现Web宠物商城系统
热门文章
- 磊科nw336 linux驱动程序,Ubuntu 10.04 安装磊科nw336驱动 rtl8188su rtl8192su
- 【Python笔记】获取星期几在指定年份的所有日期
- Android修行手册 - VideoView全解-下
- android 11.0 wifi密码保存的位置
- C语言已知二进制码求循环码,二进制和循环码转换
- linux查看gc日志,将GC日志输出到文件
- O365 Multi-Geo测试报告
- 如何使用HTML,CSS和JavaScript创建 二进制计算器?
- 入门--什么是机器码、注册机和注册码
- 解决华硕前置音频没声音,但后置音频有声音,没有Realtak音频管理器如何处理的问题