广告
返回顶部
首页 > 资讯 > 精选 >Java中的set集合怎么应用
  • 584
分享到

Java中的set集合怎么应用

2023-07-02 11:07:52 584人浏览 泡泡鱼
摘要

这篇文章主要讲解了“Java中的set集合怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的set集合怎么应用”吧!Set系类集合特点:无序:存取顺序不一致不重复:可以去除重

这篇文章主要讲解了“Java中的set集合怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的set集合怎么应用”吧!

Java中的set集合怎么应用

Set系类集合特点:

  • 无序:存取顺序不一致

  • 不重复:可以去除重复

  • 索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素

Set集合实现类特点:

HashSet:无序、不重复、无索引

LinkedHashSet:有序、不重复、无索引

TreeSet:排序、不重复、无索引

Set集合的功能上基本上与Collection的api一致。

HashSet集合

HashSet集合:

Set<String> set = new HashSet<>();        set.add("石原里美");        set.add("石原里美");        set.add("工藤静香");        set.add("朱茵");        System.out.println(set);        set.remove("朱茵");        System.out.println(set);

输出结果:

Java中的set集合怎么应用

通过上述代码与运行结果,我们可以清晰地看出,HashSet集合无序、不重复的特性;

Java中的set集合怎么应用

结合上述图片所示,可以看出HashSet集合是无法通过get()方法的索引获取数据的,并且在删除集合中的数据的时候,也只能通过定向的对数据进行删除。

LinkedHashSet集合:

LinkedHashSet集合:

Set<String> set = new LinkedHashSet<>();        set.add("石原里美");        set.add("石原里美");        set.add("工藤静香");        set.add("朱茵");        System.out.println(set);        set.remove("朱茵");        System.out.println(set);

输出结果:

Java中的set集合怎么应用

通过上述代码与输出结果做对比,即可看出无序与有序之间的区别,前者是会将传入的数据顺序打乱,而后者则是仍然按照输入数据的顺序存储数据,因此输出的时候是有序状态。

TreeSet集合:

TreeSet集合:

Set<Integer> set = new TreeSet<>();        set.add(13);        set.add(23);        set.add(23);        set.add(11);        System.out.println(set);        set.remove(23);        System.out.println(set);

输出结果:

Java中的set集合怎么应用

通过上述代码和输出结果我们便可以通过字面意思去理解为什么TreeSet的特点是排序了,即将存储的数据按照Java默认的排序方式进行排序。

然而此时若存储自定义如People对象,TreeSet无法直接排序,会出现报错的情况!

//People类:public class People{    private String name;    private int age;    private String classroom;    public People(){    }    public People(String name, int age, String classroom) {        this.name = name;        this.age = age;        this.classroom = classroom;    }    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;    }    public String getClassroom() {        return classroom;    }    public void setClassroom(String classroom) {        this.classroom = classroom;    }    @Override    public String toString() {        return "People{" +                "name='" + name + '\'' +                ", age=" + age +                ", classroom='" + classroom + '\'' +                '}';    }}//main方法:public static void main(String[] args) {        Set<People> p = new TreeSet<>();        p.add(new People("张三",19,"智能"));        p.add(new People("李四",18,"数据库"));        p.add(new People("王五",20,"渗透"));        System.out.println(p);    }

若想解决该问题,我们就需要为TreeSet集合自定义存储类型,现有两种方式可以解决该问题:一种是自定义类实现Comparable接口并重写里面的compareTo方法指定规则;另一种则是集合自带比较器对象进行规则定义。

方式一:自定义类实现Comparable接口重写里面的compareTo方法指定比较规则(多余无关紧要的代码在此不再赘述了,只展示重要的那部分代码)

//改变的第一个地方:实现Comparable类public class People implements Comparable<People> {//改变的第二个地方:重写Comparable类中的compareTo方法        @Override    public int compareTo(People o) {        return this.age-o.age;    }}

输出结果(根据年龄进行比较):

Java中的set集合怎么应用

在重写的方法中,return后面的代码决定了该对象将要根据什么准则进行比较,比较规则如下:

  • 如果认为第一个元素大于第二个元素返回正整数即可

  • 如果认为第一个元素小于第二个元素返回负整数即可

  • 如果认为第一个元素等于第二个元素返回0即可,此时Treeset集合只会保留一个元素,认为两者重复

方式二:集合自带比较器对象进行规则定义

Set<People> p = new TreeSet<>(new Comparator<People>() {            @Override            public int compare(People o1, People o2) {                return o1.getAge()-o2.getAge();            }        });

在原来的基础之上对集合的创建作出改变,并且其比较准则与前面的定义方法类似,相对前面的方式,这种方式会更加方便快捷一些。在此,我们也可以回顾一些前面所学到的知识“Lambda表达式”,对给代码块进行化简。

Set<People> p = new TreeSet<>((o1, o2) -> o1.getAge()-o2.getAge());

感谢各位的阅读,以上就是“Java中的set集合怎么应用”的内容了,经过本文的学习后,相信大家对Java中的set集合怎么应用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Java中的set集合怎么应用

本文链接: https://www.lsjlt.com/news/341474.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中的set集合怎么应用
    这篇文章主要讲解了“Java中的set集合怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的set集合怎么应用”吧!Set系类集合特点:无序:存取顺序不一致不重复:可以去除重...
    99+
    2023-07-02
  • java怎么遍历set集合
    在Java中,可以使用foreach循环或迭代器来遍历Set集合。1. 使用foreach循环遍历Set集合:```javaSet ...
    99+
    2023-10-10
    java
  • Python中集合Set怎么用
    这篇文章给大家分享的是有关Python中集合Set怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在数学中,对集合的严格定义可能是抽象的且难以掌握。但实际上可以将集合简单地认为是定义明确的不同对象的集合,通常...
    99+
    2023-06-29
  • Python的集合set怎么用
    这篇文章主要讲解了“Python的集合set怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的集合set怎么用”吧!一、定义集合中的元素是无序的、唯一的、不可变的类型。集合是...
    99+
    2023-06-29
  • Swift Set集合怎么用
    这篇文章将为大家详细讲解有关Swift Set集合怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 创建Set集合// 创建Setvar set: Set<In...
    99+
    2023-06-25
  • Java中的set集合是什么意思
    目录引言概念HashSet集合LinkedHashSet集合:TreeSet集合:实战场景引言 在前面的内容中,我们先是一一介绍了Collection集合中都有哪些种类的集合,并且详...
    99+
    2022-11-13
  • java中set集合的常用方法详解
    因为Set集合也是继承Collection集合 所以这里就不讲继承Collection集合的方法   都是继承Collection集合的方法 //www.jb5...
    99+
    2022-11-12
  • ES6中怎么使用Map与Set集合
    这期内容当中小编将会给大家带来有关ES6中怎么使用Map与Set集合,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。集合的概念以及和数组的区别其实数组也是集合, 只不过数组...
    99+
    2022-10-19
  • java中set集合的常用方法有哪些
    这篇文章给大家介绍java中set集合的常用方法有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。因为Set集合也是继承Collection集合所以这里就不讲继承Collection集合的方法  ...
    99+
    2023-06-25
  • Java中Map集合的双列集合怎么用
    这篇文章给大家分享的是有关Java中Map集合的双列集合怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Map集合Map概述Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是...
    99+
    2023-06-25
  • es6的set集合怎么增加元素
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。Set集合:是一种数据结构,结构类似于数组,且没有重复的值。主要用于数组去重,字符串去重。1、操作方法(1)add():添加值,返回Set结构本身let ...
    99+
    2023-05-14
    Set ES6
  • Java中Set集合的使用和底层原理解析
    目录Set系列集合介绍Set集合概述HashSet无序原理Set集合对象去重LinkedHashSetTreeSet排序规则Set系列集合介绍 Set集合概述 Set系列集合特点: ...
    99+
    2022-12-10
    Java中Set集合的使用 Java中Set集合
  • Java常用集合之Set和Map的用法详解
    目录常用Set集合Set集合的特点HashSet创建对象常用方法遍历常用Map集合Map集合的概述HashMap创建对象常用方法遍历HashMap的key去重原理常用Set集合 Se...
    99+
    2022-11-13
  • Java集合框架中如何掌握Map和Set 的使用
    这篇文章将为大家详细讲解有关Java集合框架中如何掌握Map和Set 的使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 搜索1.1 场景引入在学习编程时,我们常见的搜索方式...
    99+
    2023-06-22
  • 如何解读Java三大集合中map list set的用法
    如何解读Java三大集合中map list set的用法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Map接口和Collection接口是所有集合框架的父接口...
    99+
    2023-06-25
  • Java中集合List、Set和Map的入门详细介绍
    目录一、Collection接口二、List集合2.1介绍2.1.1 ArrayList(数组)2.1.2 Vector(数组实现、线程同步)2.1.3 LinkList(链表)2....
    99+
    2022-11-12
  • java中map集合怎么使用
    在Java中,Map是一种键值对的集合,它提供了一种将键映射到值的方式。Map接口是Java集合框架中的一部分,它有多个实现类,例如...
    99+
    2023-10-08
    java
  • vue中$set怎么给数组集合对象赋值
    这篇文章主要讲解了“vue中$set怎么给数组集合对象赋值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中$set怎么给数组集合对象赋值”吧!vue $set 数组集合对象赋值在vue...
    99+
    2023-07-04
  • 深入解读Java三大集合之map list set的用法
    Map接口和Collection接口是所有集合框架的父接口: Collection接口的子接口包括:Set接口和List接口 Map接口的实现类主要有:HashMap、TreeMap...
    99+
    2022-11-12
  • Java集合类怎么使用
    这篇文章主要讲解了“Java集合类怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java集合类怎么使用”吧!初始容量集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作