Set排序

set包括HashSet和TreeSet,HashSet是基于HashMap的,TreeSet是基于TreeMap的。

TreeMap是用红黑树实现,天然就具有排序功能,“天然就具有排序功能”是指它拥有升序、降序的迭代器。

那么HashSet怎么排序呢?我们可以将HashSet转成List,然后用List进行排序。

例如:

package SetLearn;

public class User implements Comparable {

private String name;

private int age;

public User() {

}

public User(String name, int age) {

super();

this.name = name;

this.age = age;

}

@Override

public String toString() {

return "name:" + name + ",age:" + age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public int compareTo(User o) {

if (o.age < this.age) {

return 1;

} else if (o.age > this.age) {

return -1;

} else {

return 0;

}

}

/**

* @param args

*/

public static void main(String[] args) {

User u1 = new User("fox", 11);

User u2 = new User("fox2", 21);

System.out.println(u2.compareTo(u1));

}

}

主要示例代码:

Set us = new HashSet();

//Set us = new TreeSet();

//Set us = new TreeSet(new Comparator() {

//@Override

//public int compare(User o1, User o2) {

//if (o1.getAge() < o2.getAge()) {

//return -1;

//} else if (o1.getAge() > o2.getAge()) {

//return 1;

//} else {

//return o1.getName().compareTo(o2.getName());

//}

//}

//});

us.add(new User("f5", 12));

us.add(new User("f2", 22));

us.add(new User("f3", 2));

us.add(new User("f4", 14));

us.add(new User("f5", 32));

us.add(new User("f4", 12));

us.add(new User("f7", 17));

us.add(new User("f8", 52));

// set -> array

List list = new ArrayList(us);

System.out.println(list);

Collections.sort(list);

System.out.println(list);

也可以将HashSet转换成数组用Arrays排序。

java set排序_Java Set元素 排序相关推荐

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

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

  2. Java集合或Map中元素排序及过滤

    在Java中,对集合或Map中元素进行排序或过滤是一个频繁操作.这里以List为例介绍下如何在集合中实现元素的排序和过滤功能.对于非List元素(Set.Map)等,一方面可以参考List使用类似的方 ...

  3. java 字段排序_Java多字段排序之冒泡

    场景: 奥运会时期,每场赛事后,对国家的金.银.铜牌进行排序,排序规则如下: 先以金牌排序,金牌数越多,排得越前,如果金牌数相同,则比银牌数,如果银牌数一样多,则比铜牌数,如果铜牌数还一样多,则按国家 ...

  4. 选择排序java从小到大代码_java中选择排序与归并排序的内容,详细解析

    上次我们已经为大家介绍过java中插入.分治和快速排序的内容,今天再来为大家介绍一下java中选择排序与归并排序的具体内容,并且通过实际的代码为大家解析. 首先我们需要了解的是,选择排序也是一种简单直 ...

  5. java treeset排序_java TreeSet的排序之自然排序

    TreeSet会调用元素的compareTo(Object o)方法来比较元素之间的大小关系,然后将集合里的元素按升序排列.此时需要排序元素的类必须实现Compareble接口,并覆写其int com ...

  6. java的字典序排序_java实现字典序排序

    2.编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大 写或者全用小写),设计一个算法按字典顺序将这些国家名称进行排序. 3.编写一个程序,实现...... 2.编一个程序,定义一个字符 ...

  7. java系统排序_Java实现二进制排序树

    在计算机科学中,树是非常重要的数据结构二叉排序树是树的一种特殊情况二叉排序树是,它的每个节点只能有两个子节点,左子树的节点小于其父节点,右子树中的节点大于其父节点. 父节点二进制排序树在搜索中使用非常 ...

  8. java collections.sort 忽略大小写排序_Java Spring Mongo排序忽略大小写问题

    我正在使用Spring-Data-mongodb对MongoDB执行各种请求. 尝试执行分页&时用忽略的情况排序我得到一个例外, 这是我的代码: Sort.Order order = new ...

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

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

最新文章

  1. 引入css的四种方式
  2. 机器学习特征工程之连续变量离散化:等宽分箱
  3. 【Hibernate】dao层 +getHibernateTemplate()方法解析
  4. Tornado基本使用
  5. 向DWR传递map/返回map/list/set等(返回对象的处理)
  6. jmc线程转储_如何分析线程转储– IBM VM
  7. mysql 5.0 数据库_mysql5.0常用命令
  8. 在Atom中运行脚本
  9. Java-Scanner键盘输入
  10. 深入解析ES6中let和闭包
  11. Javascript设置定时请求
  12. 【DB2】NULLS LAST与NULLS FIRST
  13. inline详细讲解【C语言】
  14. 提示 使用驱动器D:中的光盘之前需要将其格式化
  15. matlab实现zca去白化,白化算法
  16. 2019年安徽百所高校百万大学生科普创意创新大赛作品
  17. 成功解决微信跳转到手机默认浏览器下载
  18. 使用微信小程序做一个简易的下拉框,无动画效果,纯原生写法(下拉列表框)
  19. 计算机用户帐户域怎么查找,win7计算机域怎么查?小编教你查看计算机域、工作机组的方法...
  20. MultipartFile 上传文件工具类

热门文章

  1. LoadRunner11的安装与使用
  2. oracle表加引号,oracle 表名 双引号 删除 | 学步园
  3. 从钱龙数据中读取股票代码信息导入到数据库
  4. python设置internet_使用Python在Windows中设置代理设置(使用InternetSetOption)
  5. C语言课程设计 全国交通咨询模拟,全国交通咨询模拟系统C++实现(课程设计报告).doc...
  6. 女生学化工工艺好和计算机,哪些艺术型专业适合理科女生报考
  7. 对MVC,MVP和MVVM的总结
  8. 从《雷神3》洛基下落30分钟学英语时态
  9. 无锡动漫计算机学校比较好,无锡十大动漫学校排名(学动漫设计有前途吗)
  10. linux 后台运行 nohup