学习笔记~~~~~Set接口实现
Java中提供了HashSet、TreeSet、LinkedHashSet三种常用的Set实现,以下具体分析它们的用法和性能。
我们使用Set的原因是Set集合不包含重复元素,HashSet、TreeSet和LinkedHashSet三种类型什么时候使用它们,使用哪个这是一个很重要的选择性问题,正确的选择会大大提升程序运行效率;总结一下,如你的需求是要一个能快速访问的Set,那么就要用HashSet,如果你要一个排序Set,那么你应该用TreeSet,如果你要记录下插入时的顺序时,你应该使用LinedHashSet。把握这几个原则,是不是选择起来就简单多了。
Set接口的特性,Set接口继承了Collection接口,Set集合中不能包含重复的元素,每个元素必须是唯一的,你只要将元素加入set中,重复的元素会自动移除。下面分三方面对它的三个实现类进行说明。
对于有序无序的理解
集合所说的序,是指元素存入集合的顺序,当元素存储顺序和取出顺序一致时就是有序,否则就是无序。
HashSet继承AbstractSet,实现Set、Cloneable、Serializable接口
HashSet类:HashSet是采用hash表算法来实现的,其中的元素没有按顺序排列
结构图:
示例:
插入3、2、99、1、3五个元素
输出了四个元素
学习笔记~~~~~Set接口实现相关推荐
- EJB3.0学习笔记---多接口的时,实现类处理方法:
EJB学习笔记--- 1.胖客户端:指的是定义的接口太多了,接口做的工作太多; 胖接口: 2.EJB实现类型的定义,用注解的方式,当一个EJBbean,实现了多个接口的时候, 需要用注解的方式指明哪一 ...
- 【软件测试学习笔记】接口自动化测试基础-Day1 网络协议 2020-09-21
提示:本文是根据哔哩哔哩源码视频接口测试学习笔记 目录 前言 一.OSI七层协议 1.物理层 --- 只负责传输二进制电信号(无协议) 2.数据链路层 --- 分组.广播(以太网协议) 2.1 M ...
- typescript学习笔记1 —— 接口(interface)
typescript是微软出品的,javascript的超集.让javascript的写法很类似java,核心功能是让JavaScript这个弱类型的语言,增加类型检查,更适合编写企业级应用.之前的a ...
- 泛微E9后端学习笔记 - API接口调用过程
参考:E9BackendDdevelopmentGuide.pdf (e-cloudstore.com) 根据文档指引在E9安装目录下可找到如下两个文件夹 com.engine目录是核心业务逻辑类所在 ...
- TypeScript学习笔记之 接口(Interface)
在java中,接口是用来定义一些规范,使用这些接口,就必须实现接口中的方法,而且接口中的属性必须是常量. javascript中是没有接口的概念的.所以TypeScript在编译成 JavaScrip ...
- 网络编程学习笔记(套接口超时)
有三种方法给套接口上的I/O操作设置 超时: 1.调用 alarm,在到达指定时间 时产生 SIGALRM信号,可能与进程中其他已有的alarm调用 冲突 2.使用select阻塞在等待I/O上,se ...
- C#.NET学习笔记 -类,接口,对象
在开始谈接口和类的总结之前,先来了解接口和类的基本概念.熟悉了概念再来看代码就容易理解些. 先来看类的概念:什么是类? 类是面向对象程序设计的核心,实际上是一种复杂的数据类型.将不同类型的数据和与这些 ...
- Java学习笔记——函数式接口
一.函数式接口概述 函数式接口:有且仅有一个抽象方法的接口. Java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于 Lambda表达式使用的接口.只有确保接口中有且仅有一个抽 ...
- Java学习笔记004——接口、克隆、回调、内部类
接口 1.接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义 2.定义接口,如: public interface Abc{ int aaa(Object other) } 3 ...
最新文章
- Web APi之消息处理管道(五)
- MySQL性能优化之参数配置
- 为什么在iOS7中,UITableView顶部的UITableViewStyleGrouped样式具有额外的填充
- 令人头疼的clientTop、scrollTop、offsetTop
- Linux7安装系统服务,linux系统安装及初始服务优化-centos7.4
- silverlight中如何将string(字符串)写入Resource(资源)?
- web服务器软件_概述
- 将select中的项从一个移动到另一个select中
- leetcode567. 字符串的排列
- VBScript函数
- vsftpd 配置-掉坑记
- android wear系统源码,android wear5.1怎么样 android wear5.1更新评测
- 阅读器背景推荐和效果图
- 开博尔android播放器,高端安卓播放器的选择——开博尔Q10Plus 二代 4K高清播放器...
- 阿里云服务器部署javaweb
- 服务器阵列状态显示verify,[转载]转载:关于RAID--Build/VerifyClearQuick Init众说
- 冲天炉节能环保:烟气净化及烟气余热回收
- 管理学博士申请考核经验分享——信息收集篇
- 什么是DDL、DML、DCL、DQL
- zigbee CC2530 系列教程 0 课程介绍
热门文章
- jquery.ui.draggable中文文档jquery 自由拖拽类~study~
- 怎样查看电脑开机记录
- perl中的map和grep
- 很强大的FFMPEG API Documentation
- struct和typedef struct在C与C++中用法
- 【剑指offer15.二进制中1的个数】——位操作(左移右移等)
- 【TensorFlow】——实现minist数据集分类的前向传播(常规神经网络非卷积神经网络)
- 学习笔记(10):Python网络编程并发编程-粘包现象
- python需要背的英语单词怎么写_学Python必须背的42个常见单词,看看你都会吗?...
- 原生php登录注册,原生php登陆注册