博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Collection接口这样学不迷路!(List、Set、SortedSet、Queue)第二篇
阅读量:5152 次
发布时间:2019-06-13

本文共 4136 字,大约阅读时间需要 13 分钟。

Set接口的常用子类:

1.HashSet:里面不能存放重复的元素,而且是采用散列的存放方法,没有顺序

package com.set;import java.util.HashSet;import java.util.Set;import java.util.TreeSet;public class setdemo01 {    public static void main(String[] args) {        Set
allSet = new HashSet
();//HashSet对输入的数据进行无序存放 allSet.add("A"); allSet.add("B"); allSet.add("C"); allSet.add("C"); allSet.add("C"); allSet.add("D"); allSet.add("E"); System.out.println(allSet); }}
[D, E, A, B, C]

 

2.TreeSet:里面不能存放重复的元素,但是采用有序的存储方法

package com.set;import java.util.Set;import java.util.TreeSet;public class setdemo01 {    public static void main(String[] args) {                Set
allSet = new TreeSet
();//TreeSet对输入的数据进行有序存放 allSet.add("B"); allSet.add("E"); allSet.add("C"); allSet.add("C"); allSet.add("A"); allSet.add("C"); allSet.add("D"); System.out.println(allSet); }}
[A, B, C, D, E]

 自定义类排序,指定排序规则(重复元素不能加入):

package com.set;import java.util.Set;import java.util.TreeSet;//自定义类排序,指定排序规则class Person implements Comparable
{ private String name; private int age; public Person(String name,int age){ this.name=name; this.age=age; } public String toString(){ //覆写ToString()方法 return "姓名:"+this.name+";"+"年龄:"+this.age; } @Override public int compareTo(Person pp) { //覆写compareTo()方法,指定排序规则 if(this.age>pp.age){ //通过年龄排序 return 1; }else if(this.age
allSet = new TreeSet
(); allSet.add(new Person("666",30)); allSet.add(new Person("222",45)); allSet.add(new Person("555",25)); System.out.println(allSet); }}
[姓名:555;年龄:25, 姓名:666;年龄:30, 姓名:222;年龄:45]

 去掉重复元素:

package com.set;import java.util.HashSet;import java.util.Set;class Persons{    private String name;    private int age;        public Persons(String name,int age){        this.name=name;        this.age=age;    }        public boolean equals(Object obj){        if(this==obj){            return true;        }        if(!(obj instanceof Persons)){            return false;        }        Persons p=(Persons) obj;        if(this.name.equals(p.name)&&this.age==p.age){            return true;        }else{            return false;        }    }        public int hashCode(){        return this.name.hashCode()*this.age;    }        public String toString(){                //覆写ToString()方法        return "姓名:"+this.name+";"+"年龄:"+this.age;    }}public class SetDemo03 {    public static void main(String[] args) {        Set
allSet = new HashSet
(); allSet.add(new Persons("666",30)); allSet.add(new Persons("222",45)); allSet.add(new Persons("555",25)); allSet.add(new Persons("444",25)); allSet.add(new Persons("333",25)); allSet.add(new Persons("111",45)); System.out.println(allSet); }}
[姓名:111;年龄:45, 姓名:444;年龄:25, 姓名:333;年龄:25, 姓名:555;年龄:25, 姓名:222;年龄:45, 姓名:666;年龄:30]

SortedSet接口:

package com.set;import java.util.SortedSet;import java.util.TreeSet;public class SetDemo04 {    public static void main(String[] args) {        SortedSet
allSet = new TreeSet
(); allSet.add("A"); allSet.add("B"); allSet.add("C"); allSet.add("C"); allSet.add("C"); allSet.add("D"); allSet.add("E"); System.out.println("第一个元素:"+allSet.first()); System.out.println("最后一个元素:"+allSet.last()); System.out.println("从开始到指定元素的集合:"+allSet.headSet("C")); System.out.println("从指定元素到最后:"+allSet.tailSet("C")); System.out.println("返回指定对象间的元素:"+allSet.subSet("B","D")); }}
第一个元素:A最后一个元素:E从开始到指定元素的集合:[A, B]从指定元素到最后:[C, D, E]返回指定对象间的元素:[B, C]

 

认真看过此篇的小伙伴,如果对你有收获,请点击旁边的小手推荐一下,如果有误,欢迎指正,谢谢!

版权声明:此篇为本人原创,转载请标明出处 https://www.cnblogs.com/YQian/p/10847304.html

我的博客园地址:https://www.cnblogs.com/YQian/

转载于:https://www.cnblogs.com/YQian/p/10847304.html

你可能感兴趣的文章
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
Java网络编程--socket服务器端与客户端讲解
查看>>
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
今天第一次写博客
查看>>
江城子·己亥年戊辰月丁丑日话凄凉
查看>>
IP V4 和 IP V6 初识
查看>>
Spring Mvc模式下Jquery Ajax 与后台交互操作
查看>>
(转)matlab练习程序(HOG方向梯度直方图)
查看>>
『Raid 平面最近点对』
查看>>
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>