集合

集合有三大接口,Iterable接口、Collection接口和Map接口。

在这里插入图片描述

Iterable接口:
Iterable接口是Collection接口的父类。
Iterable是foreach遍历集合的迭代接口。
实现Iteable接口的类需要实现一个iterator()方法,返回值是Iterator。
iterator() 方法:
1.使用next()获得序列中的下一个元素
2.使用hasNext()检查序列中是否存在下一个元素
3. 使用remove()将迭代器新返回的元素删除

题:
Collection接口中的remove(Object)方法和Iterable在的remove()方法的区别?
1.Collection集合属于单链表结构查询, 找到删除元素后,会重新查询进行删除
Iterable找到删除元素后,可以隔项删除下一个元素
2.Collection删除时,下标可能会发生改变,而Iterable不会

Collection接口:
Collection接口继承了Iterable接口,所以集合也可以进行foreach遍历。
Collection接口在java.util包里。
Collection接口是List和Set的父类,和Map没有继承关系。

List接口:
List接口继承了Collection接口,所以可以使用foreach遍历集合。
List有序不唯一,即元素是有顺序的、可以重复,元素存取值顺序一致。
List接口的实现类ArrayList和LinkedList。ArrayList属于数据结构,查询快,增删慢,
LinkedList属于链表结构,增删快,查询慢。

题:
1.ArrayList和LinkedList的区别?
ArrayList:查询快,增删慢,属于动态数组结构
LinkedList:增删慢,查询慢,属于双向链表结构,可以应用于贪吃蛇游戏。

2.Array和ArrayList的区别?
Array数组,容量固定,只能存储类型一致的数据
ArrayList集合,容量可以动态增长,只能存储类型不一致的数据

3.数组转为List和List转为数组的方法?
List转为数组:list.toArray()
数组转为List:Arrays.asList(数组)

Set接口:
Set接口继承了Collection接口,所以可以使用foreach遍历集合。
Set是无序唯一,即元素是没有顺序的、不可以重复,元素存取值顺序不一致,只允许一个null值。
Set接口的实现类HashSet、TreeSet、LinkedHashSet。
HashSet:查询快
TreeSet:对集合中的元素排序
LinkedHashSet:单链表存数据,是有顺序的

Queue接口:
Queue是队列
队列:先进先出
堆栈:先进后出

Map接口:
Map也可以使用foreach遍历集合,键是Set集合,值是List集合。
Map集合,键唯一,值不唯一,键只允许一个为null,允许值为null。
Map的实现类HashMap、TreeMap、HashTable、LinkedHashMap。
HashMap:查询快,哈希存储结构
TreeMap:对集合中的元素排序
LinkedHashMap:单链表存数据,是有顺序的,存储数据采用的哈希表结构+链表结构。
HashTable:线程安全,效率低

题:
HashMap和HashSet的区别?
HashMap实现了Map接口,用于键值对存储数据,添加元素调用put()方法
HashSet 实现了Set接口,用于存储对象,添加元素调用add()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值