JavaAPI
集合框架
Java集合框架体系结构
- Collection接口存储一组不唯一,无序的对象
- List接口存储一组不唯一,有序(插入顺序)的对象
- Set接口存储一组唯一,无序的对象
- Map接口存储一组键值对象,提供key到value的映射(成对出现可以通过key找value,key是唯一的,无序的)
分为四大部分
1、Clollection集合
2、Map集合
3、Inerator迭代器
4、Utilities 工具类
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SneislhR-1651212730847)(D:\note\Java高级特性\图片笔记\Java集合框架.jpg)]
List接口的实现类
- ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
- 长度可变的数组
- 遍历元素和随机访问元素
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e1EssHBe-1651212730848)(D:\note\Java高级特性\图片笔记\ArrayList.jpg)]
- LinkedList采用链表存储方式,插入、删除元素时效率比较高
- 链表存储方式
- 插入、删除元素
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vQ1NXLQa-1651212730849)(D:\note\Java高级特性\图片笔记\LinkedList.jpg)]
ArrayList集合类
- ArrayList
- 是List接口的一个具体实现类
- 实现了改变大小的数组
- 随机访问和遍历元素时,他提供更好的性能
- 用到的方法
- add()
- 返回Object类型
- size()
- 和length属性作用是一样的
- get()
- 返回的也是Object类型
- add()
ArrayList常用方法
方法名 | 说明 |
---|---|
boolean add(Object o) | 在列表的末尾顺序添加元素,起始索引位置从0开始 |
void add(int index,Object) | 在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间 |
int size() | 返回列表中的元素个数 |
Object get(int index) | 返回值指定索引位置处的元素。去除的元素是Object类型,使用前需要进行强制类型转换 |
boolean contains(Object o) | 判断列表中是否存在指定元素 |
boolean remove(Objeact o) | 从列表中删除元素 |
Object remove(int index) | 从列表中删除指定位置元素,起始索引位置从0开始 |
Collection接口常用通用方法
使用子接口或子类
Collection接口常用通用方法 | |
---|---|
add() | 向集合有顺序的添加元素 |
size() | 返回元素个数 |
contains() | 判断是否存在这个元素 |
remove() | 删除元素 |
clear() | 集合里的所有元素清空 |
isEmpty() | 判断集合是否为空 |
itcrator() | 获取遍历一个集合的迭代器 |
toArray() | 把一个集合转换成一个序列 转为数组 Object[] toArray()(toArray()返回Object[]的数组) |
断点跟踪ArrayList
随机访问和遍历元素时,它提供更好的性能(插入时的断点过程跟踪)
LinkedList集合类
- LinkedList类是List接口的一个具体实现类
- LinkedList类用于创建链表数据结构
- 插入或者删除元素时,它提供更好的性能
LinkedList独有的方法
方法名 | 说明 |
---|---|
void addFirst(Object o) | 在列表的首部添加元素 |
void addLast(Object 0) | 在列表的末尾添加元素 |
Object getFirst() | 返回列表中的第一个元素 |
Object getLast() | 返回列表中的最后一个元素 |
Object removeFirst() | 删除并返回列表中的第一个元素 |
Object removeLast() | 删除并返回列表中的最后一个元素 |
ArrayList可以用父类引用指向子类对象的形式
LinkedList不可以用父类引用指向子类对象的形式
这种写法只能调用父子类公用的方法,无法调用子类独有的方法
LinkedList和ArrayList异同
同 | 异 |
---|---|
同为List实现类,元素有序、不唯一、长度可变 | ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比价高 |
共有Collection及List的通用方法 | LinkedList采用链表存储方式,插入、删除元素时效率比 |
Set接口
-
Set接口存储一组唯一,无序的对象
-
HashSet是Set接口常用的实现类
-
Set中存放对象的引用
-
Set接口采用对象的equals()方法比较两个对象是否相等
-
hashSet是Set接口常用的实现类
HashSet
- Set接口不存在get()方法,所以不能用get()方法来获取HashSet中的元素。
增强型的for
for (Object obj:hashSet) {
NewsTitle newsTitle = (NewsTitle) obj;
System.out