java学习--集合(大写五.5)

5.collection子接口:Set

在这里插入图片描述

5.1Set及其实现类特点

java.util.Collection:存储一个一个的数据
子接口:Set:存储无序的、不可重复的数据(高中学习的集合)

1)HashsSet主要实现类

底层使用的是HashMap,即使用数组+单向链表+红黑树结构进行存储。(jdk8中)

2)LinkedHashSet

是HashSet的字类,底层使用数组+单向链表+红黑树。在此基础上又添加了双向链表,用于添加元素的先后顺序,可以按照添加元素的先后顺序进行遍历,便于频繁的查询操作。

3)TreeSetshi

底层使用的是红黑树存储,可以按照添加的元素指定的属性大小顺序进行遍历。
红黑树是二叉树的一种.

5.2开发中的使用频率及场景

较List、Map来说,Set使用的频率较少
用来重复过滤数据

5.3Set中常用的方法

即Collection中声明的15个方法,没有新增方法

5.4Set中无序性、不可重复性的理解(以HashSet及其子类为例说明)

无序性:!=随机性。添加元素的顺序和遍历的顺序不一致是不是就是无序性呢?不是.
到底什么是无序性呢?与添加元素的位置元素有关,不像ArrayList一样是紧密排列的 ,这里根据添加的元素的哈希值,计算其在数组中的存储的位置,此位置不是依次排列,表现为无序性。

不可重复性:添加到Set中的元素是不能重复的。
比较的标准是:需,要判断hashCode的哈希值以及equals()得到的boolean型的结果,哈希值相同且equals返回true,则认为元素是相同的。

5.5添加到HashSet/LinkedHashSet中元素的要求

要求元素中的类要重写两个方法,hashCode()和equals()方法。同时要求hashCode()和equals()要保持一致性。我们在idea中自动生成这两个方法重写即可,即能两个保持两个方法的一致性。

5.6TreeSet的使用

5.6.1底层的数据结构

采用红黑树

5.6.2添加数据后的特点

可以按照添加元素的指定属性的大小顺序进行遍历

5.6.3向treeSet添加元素的要求

要求添加到TreeSet的元素必须是同一个类型的对象,否则会报ClassCastException
添加的元素需要考虑排序:自然排序和定制排序。

5.6.4判断数据是否相等的标准

5.7练习

5.7.1案例:定义方法如下:public static List duplicateList(List list)

要求:① 参数List中只存放Integer的对象
② 在List内去除重复数字值,尽量简单

5.7.2 案例:编写一个程序,获取10个1至20的随机数,要求随机数不能重复。并把最终的随机数输出到控制台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/55406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

netron安装(windows linux)

目录 netron简介 不同操作系统的安装方式 linux windows mac系统 netron简介 netron可视化工具,是一个可以清晰的看到神经网络模型的每一层的输入输出,网络总体的架构,而且支持各种不同网络框架,简单好用。 效果如下所示 不…

【视频笔记】408新增知识点信号——里昂视频

文章目录 **2.信号****3.信号的实现**4.信号的处理**①忽略信号****②执行信号的默认操作****③捕获井处理信号**几个Linux支持的典型信号: **5.信号的产生**① **通过终端按键(键盘)产生信号**例如,CtrlC发送2号信号SIGINT、Ctrl\发送3号信号SIGQUIT② …

爬虫逆向-js进阶

1.作用域和闭包 //作用域 // var a 3 // // function test(a){ // var a 1; // console.log(函数内部,a) // } // test(2) // // console.log(a)//闭包 // function jiami(){ // function encrypt(){ // console.log(在这里进行加密了) // } // p…

五个必备的高清无水印视频素材库推荐

做抖音、短视频创作的朋友都知道,优质的素材往往决定了作品能否获得更多关注。如果你还不知道在哪里下载高清无水印的视频素材,不用担心!今天为你推荐5个高品质的视频素材库,助你轻松创作出爆款视频。 蛙学网 是国内领先的视频素材…

Mysql常用sql语句与刷题知识点

目录 1. 常用sql2. 刷题知识点 1. 常用sql #查询MySQL中所有的数据库 SHOW DATABASES; #查询当前正在使用的数据库 SELECT DATABASE();#普通创建(创建已经存在的数据库会报错) CREATE DATABASE 数据库名称; #创建并判断(该数据库不存在才创建…

2.html编辑器介绍

html编辑器介绍 HTML 编辑器推荐 理论上我们可以使用记事本进行html编码和开发,但是在实际开发html页面的时候,使用一些专业的开发工具可以使我们更加快速和高效的进行开发,下面介绍几种开发工具: VS Code:https://…

006_django基于Python的二手房源信息爬取与分析2024_l77153d4

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

【uniapp】实现触底加载数据

前言:实现界面触底数据加载。后端接口得支持翻页传参(本案例使用django) 1、后端接口 1.1 封装翻页公共方法standardPagination.py # -*- coding: utf-8 -*- # Time : 2024/10/15 13:15 # Author : super # File : standardPaginat…

全托自闭症教育,关注孩子每个细节

原文文章:http://www.zibizhengwang.com/page37.html 自闭症,这一复杂的神经发育障碍,影响着无数孩子的成长与未来。然而,在广州,有一座特别的灯塔——星贝育园自闭症儿童寄宿制学校,它不仅照亮了自闭症儿…

SpringBoot使用esayExcel根据模板导出excel

1、依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.3</version></dependency> 2、模板 3、实体类 package com.skybird.iot.addons.productionManagement.qualityTesting…

配置MAC地址安全

概述 MAC地址安全配置是确保网络设备和通信安全的重要措施&#xff0c;通过限制、监控和管理设备的物理地址来防止未授权访问和潜在的网络威胁。以下是对MAC地址安全的概述&#xff1a; 基本概念 定义&#xff1a;MAC地址&#xff08;Media Access Control Address&#xff09…

Jenkins整合Docker实现CICD自动化部署(若依项目)

前期准备 提前准备好jenkins环境 并且jenkins能使用docker命令&#xff0c;并且已经配置好了jdk、node、maven环境&#xff0c;我之前写了安装jenkins的博客&#xff0c;里面讲得比较详细&#xff0c;推荐用我这种方式安装 docker安装jenkins&#xff0c;并配置jdk、node和m…

CEP 复杂事件处理引擎进阶:股票中高频 CTA 策略实现与并行回测

在 CEP 复杂事件处理引擎入门&#xff1a;初级高频量价因子策略的实现 中&#xff0c;我们详细介绍了 CEP 引擎和它的一些关键概念&#xff0c;如复杂事件和事件监听器等。随后又通过两个初级的 CEP 引擎使用案例介绍了创建并运行一个最简单结构的 CEP 引擎所需的步骤和模块&am…

骨传导耳机哪个牌子最好?五大高口碑骨传导耳机揭秘!

骨传导耳机作为一种创新的音频设备&#xff0c;通过振动头骨直接将声音传递到内耳&#xff0c;不仅为用户提供了全新的听音体验&#xff0c;还能在保持环境音的情况下享受音乐&#xff0c;特别适合户外运动和日常通勤。然而&#xff0c;在众多品牌和型号中选择最适合自己的骨传…

人工智能正在扼杀云计算的可持续性

可持续性曾是公共云计算中备受推崇的优势。企业和云提供商大肆宣扬他们的绿色计划&#xff0c;推广采用可再生能源的数据中心&#xff0c;以减少碳足迹。 近几个月来&#xff0c;这个话题已悄然淡出人们的视线。罪魁祸首是什么&#xff1f;对人工智能功能的无限需求正在推动云…

为何云渲染成为3D设计的首选?效率解析

在3D设计领域&#xff0c;建模和渲染是两个不可或缺的步骤。3D建模软件如3ds Max让设计师能够创造出精美的三维模型&#xff0c;而渲染则是将这些模型转化为逼真图像或动画的过程。 渲染的重要性在于&#xff0c;它能够直观地展示设计的最终效果&#xff0c;使得设计师能够及时…

MongoDB未授权访问

mongodb未授权访问漏洞 复现 MongoDB[//]: # (忙够DB)是一种流行的开源文档数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;基于分布式文件存储的数据库属于NoSQL数据库的一种。 开启MongoDB服务时不添加任何参数时,默认是没有权限验证的 登录的用户可以通过默认端口…

基于Java微信小程序的高校教务管理系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…

自动化工具:Ansible

目录 一、运维自动化工具有哪些 二、Ansible 概述 1、Ansible 概念 2、Ansible 特点 3、Ansible 工作流程 三、安装部署Ansible 1、环境部署 2、管理节点安装 Ansible 3、查看Ansible相关文件 4、配置主机清单 5、免密管理 ssh-keygen 5.1、测试连通性 5.2、简洁输…

禹神TypeScript课程记录

TypeScript与JavaScript的关系 TypeScript是一个基于JavaScript的扩展语言TypeScript包含了JavaScript的所有内容TypeScript增加了&#xff1a;静态类型检查、接口、泛型等很多现代开发特性&#xff0c;更适合大型项目。TypeScript需要编译为JavaScript&#xff0c;然后才能在浏…