18_Java 集合体系有什么?

集合类存放于 Java.util 包中,
主要有 3 种:set(集)、list(列表包含 Queue) 和 map(映射)。

1.Collection:Collection 是集合 List、Set、Queue 的最基本的接口。
2.Iterator:迭代器,可以通过迭代器遍历集合中的数据。
3.Map:是映射表的基础接口。

在这里插入图片描述

在这里插入图片描述

1.Iterator 接口

Iterator 接 口 是 一 个 用 于 遍 历 集 合 中 元 素 的 接 口 , 主 要 包 含hashNext(),next(),remove()三种方法。如果实现 Iterator 接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会在遍历到,通常无序集
合实现的都是这个接口,比如 HashSet,HashMap

2.LinkedIterator 接口:

LinkedIterator 在 Iterator 的 基 础 上 又 添 加 了add(),previous(),hasPrevious()三种方法,那些元素有序的集合,实现的一般都是 LinkedIterator 接口,实现这个接口的集合可以双向遍历,既可以通过next() 访问下一个元素, 又可以通过 previous() 访问前一个元素, 比如ArrayList。

3.Collection (集合的最大接口)继承关系

List 可以存放重复的内容
Set 不能存放重复的内容,
所以的重复内容靠 hashCode()和 equals()两个方法区分
Queue 队列接口
SortedSet 可以对集合中的数据进行排序Collection定义了集合框架的共性功能:
集合中存储的都是对象的引用(地址)。

4.List

凡是可以操作角标的方法都是该体系特有的方法:
ArrayList 线程不安全,查询速度快
Vector 线程安全,但速度慢,已被 ArrayList 替代
LinkedList 链表结果,增删速度快
TreeList 树型结构,保证增删复杂度都是O( log n),增删性能远高于ArrayList和LinkedList,但是稍微占用内存

5.Set

Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。
HashSet:底层数据结构是哈希表, 是线程不安全的, 数据不同步。
HashSet 是如何保证元素唯一性的呢?
是通过元素的两个方法,hashCode 和 equals 来完成。
如果元素的 HashCode 值相同,才会判断 equals 是否为 true。如果元素的 hashcode 值不同,不会调用 equals。
注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode 和 equals 方法。
TreeSet:底层数据结构是二叉树,存放有序:TreeSet 线程不安全可以对Set 集合中的元素进行排序。通过 compareTo 或者 compare 方法来保证元素的唯一性。

6.Map

Correction、Set、List 接口都属于单值的操作,而 Map 中的每个元素都使用 key——>value 的形式存储在集合中。
Map 集合:该集合存储键值对, 是 key:value 一对一对往里存, 而且要保证键的唯一性。

Map 接口的常用子类
HashMap:底层数据结构是哈希表,允许使用 null 值和 null 键,该集合是数据不同步的,将 hashtable 替代,jdk1.2.效率高。
TreeMap:底层数据结构是二叉树,线程不同步,可以用于给 map 集合中的键进行排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值