IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 21. java之集合总结 -> 正文阅读

[Java知识库]21. java之集合总结

1.ArrayList:存储有序,可重复的单一对象.底层采用Object[]存值.

优点:遍历集合和修改集合中元素效率高.
缺点:添加和删除指定索引处的元素效率低.

2.LinkedList:存储有序,可重复的单一对象.底层采用双向链表结构存值.

优点:添加和删除指定索引处的元素效率高.
缺点:遍历集合和修改集合中元素效率低;

3.HashSet:存储无序,唯一(不可重复)的单一对象.底层采用HashMap的Key存值.

优点:唯一性(去重).
唯一性:通过HashSet泛型类型中重写hashCode()和equals()来实现去重保证唯一性.

4.TreeSet:存储无序但是可排序,唯一(不可重复)的单一对象.底层采用

TreeMap的Key存值.
	注意:TreeSet一定要用排序器.如果用无参构造创建TreeSet集合,默认用的是自然排序器
		要求TreeSet泛型类型中实现自然排序器接口,重写排序方法.如果TreeSet想用自定义排序器,就得将自定义排序器的对象作为TreeSet构造方法的参数传入(第一种:用匿名内部类实现自定义排序器对象;第二种先声明类实现自定义排序器接口,重写排序方法,再创建对象).
	优点:唯一性(去重),可排序.
	可排序性:通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.
	唯一性:通过排序器的排序方法返回0表示相同元素不存来实现的.

5.HashMap:按Key-value对来存值.HashMap的Key无序的,唯一的单一对象.底层采用数组+链表 (哈希表)结构存值.

Key的唯一性:通过HashMap的Key泛型类型中重写hashCode()和equals()来实现去重	保证唯一性.

6.TreeMap:按Key-value对来存值.TreeMap的Key无序的可排序,唯一的单一对象.底层采用

红黑二叉树结构存值.
	注意:TreeMap一定要用排序器.如果用无参构造创建TreeMap集合,默认用的是
	自然排序器要求TreeMap的Key泛型类型中实现自然排序器接口,重写排序方法.
	如果TreeMap想用自定义排序器,就得将自定义排序器的对象作为TreeMap构造
	方法的参数传入(第一种:用匿名内部类实现自定义排序器对象;第二种先声明类
	实现自定义排序器接口,重写排	序方法,再创建对象).
	Key的可排序性:通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.
	Key的唯一性:通过排序器的排序方法返回0表示相同元素Key不存value覆盖来实现的.

7.能实现唯一性(去重)的集合有HashSet,HashMap,TreeSet,TreeMap都可以实现,只是原理不同.HashSet和HashMap通过重写hashCode()和equals()来实现的;TreeSet,TreeMap通过排序器的排序方法返回0来实现的.

8.能实现排序的集合有TreeSet,TreeMap,它们都是通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.

9.要存多个相同类型数据,遍历比较多,首选ArrayList集合.
10.要存多个相同类型数据,添加和删除元素比较多,首选LinkedList集合.
11.要存多个相同类型数据,要保证元素不重复(唯一性),首选HashSet集合,
TreeSet,HashMap,TreeMap也可以实现.
12.要存多个相同类型数据,要保证元素不重复(唯一性)的同时还要排序,首选TreeSet集合,
TreeMap集合也可以实现.

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:40:39  更:2021-08-02 10:42:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/12 2:41:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码