无名商城论坛

搜索
查看: 426|回复: 0

[其他技术] 【HC】Java基础集合

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 18:41:28 | 显示全部楼层 |阅读模式

Java集合
集合架构

Collection 接口存储一组不唯一,无序的对象
List 接口存储一组不唯一,有序(索引顺序)的对象
Set 接口存储一组唯一,无序的对象
Map接口存储一组键值对象,提供key到value的映射
Key 唯一 无序
value 不唯一 无序
List

特点:有序 不唯一(可重复)
ArrayList 线性表中的顺序表

在内存中分配连续的空间,实现了长度可变的数组
优点:遍历元素和随机访问元素的效率比较高
缺点:添加和删除需大量移动元素效率低,按照内容查询效率低,
LinkedList 线性表中双向链表

采用双向链表存储方式。
缺点:遍历和随机访问元素效率低下
优点:插入、删除元素效率比较高(但是前提也是必须先低效率查询才可。如果插入删除发 生在头尾可以减少查询次数)
List常用方法

List相对Collection增加了关于位置操作的方法
List的遍历方法
for
for-each
Iterator迭代器
理解面向接口编程

List list = new ArrayList();
ArrayList list = new ArrayList();
1
2
集合中内容是否相同
通过equals进行内容比较,而是==引用比较
set

特点:无序 唯一(不重复)

HashSet

采用Hashtable哈希表存储结构(神奇的结构)
优点:添加速度快 查询速度快 删除速度快
缺点:无序
LinkedHashSet

采用哈希表存储结构,同时使用链表维护次序
有序(添加顺序)
TreeSet

采用二叉树(红黑树)的存储结构
优点:有序 查询速度比List快(按照内容查询)
缺点:查询速度没有HashSet快
Set常用方法

Set相对Collection没有增加任何方法
Set的遍历方法
for-each
Iterator迭代器
无法使用for进行遍历(因为无序,所以没有get(i))
HashSet、HashMap或Hashtable中对象唯一性判断
重写其hashCode()和equals()方法
TreeSet中指明排序依据
实现Comparable接口
创建实现Compator接口的类。
哈希表存储原理

神奇的表结构,添加和查询数据速度非常快
Map

特点 key-value映射

HashMap

Key无序 唯一 (Set)
Value 无序 不唯一 (Collection)
LinkedHashMap

有序的HashMap 速度快
TreeMap
有序 速度没有hash快
Set和Map采用了相同的数据结构,只用于map的key存储数据,就是Set


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表