java中set集合的使用方法

1.HashSet javascript

java.util.HashSet类实现了Java.util.Set接口。java

它有以下特色:spa

1.它不容许出现重复元素;2.不保证集合中元素的顺序3.容许包含值为null的元素,但最多只能有一个null元素。code

下面代码是利用hashSet获取不重复的一组groupId:xml

public static List getGroups(List resourceList) {Set set = new HashSet();for (Resource resource : resourceList) {if (StringUtils.isNotBlank(resource.groupIds)) {for (String groupId : StringUtils.split(resource.groupIds, “,”)) {if (StringUtils.isNotBlank(groupId)) {set.add(Long.parseLong(groupId));}}}}return new ArrayList(set);}

2.TreeSet

TreeSet是能够实现排序等功能的集合,它在对象元素添加到集合中时会自动按照某种比较规则将其插入到有序的对象序列中;对象

TreeSet是如何对对象进行排序的捏?TreeSet支持 两种排序方式:天然排序和客户化排序,默认状况下是天然排序.在JDK中,有一部分类实现了Comparable接口,如Integer,Double和String等,Comparable接口有一个compareTo(Object o)方法,它返回整数类型,对于表达式x.compareTo(y),若是返回值为0,表示x和y相等,若是返回值大于0,表示x大于y,若是小于0,表示x TreeSet调用对象的compareTo()方法比较集合中对象的大小,而后进行升序排序,这种方式称为天然排序.客户化排序:java.util.Comparator接口用于指定具体的排序方式,它有个compare(Object obj1,Object obj2),用于比较两个对象的大小.当表达式compare(x,y)的值大于0,表示x大于y,小于0,表示x小于y,等于0,表示x等于y,若是想让TreeSet进按照Customer对象的name属性进行降序排列,能够先建立实现Comparator接口的类CustomerComparator,如:import java.util.*;public class CustomerComparator implements Comparator{public int compare(Object o1,Object o2){Customer c1=(Custoemr)o1;Customer c2=(Customer)o2;if(c1.getName().compareTo(c2.getName())>0) return -1;if(c1.getName().compareTo(c2.getName())<0) return 1;return 0;} }接下来在构造TreeSet的实例时,调用它的TreeSet(Comparator comparator)构造方法Set set=new TreeSet(new CustomerComparator());Customer c1=new Customer("TOM",15);Customer c2=new Customer("JACK",20);Customer c3=new Customer("MIKE",38);set.add(c1);set.add(c2);set.add(c3);Iterator it=set.iterator();while(it.hasNext()) {Custoemr customer=(Customer)it.next();System.out.println(customer.getName()+"" +customer.getAge();)}当TreeSet向集合中加入Customer对象时,会调用CustomerComparator类的compare()方法进行排序,以上Tree按照Custoemr对象的name属性进行降序排列,最后输出为:TOM 15 MIKE 38 JACK 16

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月14日
下一篇 2022年6月14日

相关推荐

  • 让自己进步的方法

    第一个就是制定目标的时候 不要自欺欺人,一定在自己能力范围之内: 有些人制定了超出自己能力范围之内的计划,在你的欲望大于能力的时候,人就往往因为完成不了自己心中欲望的时候,就开始会…

    2022年8月29日
  • 马乔丽每周运势3.15-3.21

    【白羊座】译者:@c4ndy 别失去幽默感。当每个人都沉迷于没有明显答案的棘手情况时,一个笑话可以打破紧张气氛或是振奋精神。如果每个人都立场坚定,那么最后就会陷入僵局。周中过后,你…

    2022年8月14日
  • 万叶的攻略

    角色与特点:万叶使用单手剑和风元素神之眼,具有集怪、控场、化元素的象征性辅助能力。自我突破获得元素掌握属性,同时先天天赋2会根据万叶的元素掌握为全队角色提供元素伤害加成。推荐作为纯…

    2022年7月4日
  • 原神流浪的晚星适合谁?原神流浪的晚星使用角色推荐

    原神流浪的晚星适合谁?流浪的晚星是新的卡池四星武器,所以目前很多玩家还不清楚该把它给谁用好。下面就带来了相关的介绍,有疑惑的玩家可以了解一下。 流浪的晚星属性 攻击力510 元素精…

    2022年10月14日
  • 你拥有无限可能

    有没有发现经常没法集中注意力? 有没有觉得自己始终没有掌握一个好的学习方法? 有没有感觉看过的东西,老是忘?演讲的时候老是丢三落四? 有没有向往自己也能像查理芒格一样快速地阅读? …

    2022年4月30日
  • 这两个方法,让我从“哑巴”彻底蜕变成“话痨”,轻松加简单

    我想当“话痨”,一直想,并一直在朝着这方向努力。“话多”是优点,我小时候总是吃了话少的亏,所以一直想变得话多,话无限多!如果我是个话痨,不论跟熟人,还是跟陌生人,均可以“无限说话”…

    2022年8月12日
  • 麻省理工开发出新型电池 成本只有同等大小锂离子电池的1/6

    麻省理工学院研究人员利用铝和硫作为电极材料,再加上熔盐电解质,开发出一种新型电池。这种铝-硫电池不仅成本低,而且安全,可用于家庭或中小企业供电以及电动汽车充电站。这项研究已于8月2…

    2022年8月29日
  • 形势严峻!裁员狂潮凶猛,互联网职场人如何自保?成长是最佳武器

    【形势严峻】 连续三年的疫情,整个社会经济都受到重挫,上到国家、下到个人都受到了严重影响。 国家在5月份出台了33条稳经济的措施,并且召开了难得一见的万人线上大会,探讨稳住经济大盘…

    2022年6月13日
  • 手机不能耗完电才充电?网友:我买的是手机还是亲爹?

    手机作为我们“最好”的朋友,我估计有不少读者巴不得自己的手机能够随时处于“满血”(满电)状态,不管是打游戏还是出门都不用担心没电的尴尬情况出现。但事实却是不少人都患上了续航焦虑症,…

    2022年6月26日
  • 把颜值放在第一位的攒机:肤白身材好,夏天最搭配色PC的诞生

    夏天到了,更喜欢看白色的东东了! 分享一套白色的ATX主机方案,除了绝大部分硬件都选择了白色外,主机体积也是控制的相当的好,只有20L左右,堪比MATX主机了。 性能上选择了Int…

    2022年6月17日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息