- 集合接口Collection (List ,Set),Map
- 面试题:java 三大集合接口有哪些??
①List Set Map - Collection
存放一组 无序,不唯一的对象集合 - List
存在一组有序(插入的顺序),不唯一的对象集合 - Set
存放一组无序,唯一的对象集合 - Map
存放一组键值对集合(key ,value)
Key 唯一 value 不唯一
- 面试题:java 三大集合接口有哪些??
- 集合实现类
- List
①面试题:ArrayList /LinkedList 异同-
存储结构:ArrayList 是基于动态数组,LinkedList 基于链表
-
ArrayList 遍历,查询的效率高
-
LinkedList 插入和删除效率高
②ArrayList -
实现的是可变的数组
-
遍历和随机访问的效率高
-
常用方法
Collection 方法- add(Object obj) 添加
- remove(Object obj) 删除
- contains(Object obj) 是否包含
- clear() 清空
- isEmpty() 判断是否为空
- iterator() 迭代器
- toArray() 转换为数组
- size() 长度
- 数组长度.length属性
ArrayList 特有的方法
- add(int indec, Object obj) 添加
- remove(int index) 删除
- get(int index) 获取
LinkedList
链表的存储方式
插入和删除的效率高
常用特有方法- addFirst(Object obj)
- addLast(Object obj)
注意事项:如果在此方法之后继续添加,那么最后一条就变成了最新添加的 - removeFirst()
- removeLast()
- getFirst()
- getLast()
-
- List
- HashCode
- 每个对象都有一个hashCode
- 同一个hashCode 可以对应不同的对象
- 不同的HashCode 肯定是不同的对象
- 不同的对象也可能是同一个hashCode
- Set -HashSet
- 面试题:去重原理
①先判断hashCode() 是否相同,不同添加
②HashCoce() 相同的情况,判断equals()
- 面试题:去重原理
- Map- HashMap
- 常用方法
①put(key ,value);
②get(key)
③keyset()
④values()
⑤entrySet()
⑥size()
⑦containsKey() - 返回Map.Entry
(2)Map.Entry (键值对象)
- 常用方法
- 泛型
(1)规定集合的类型
HashSet<数据类型> lists = new HashSet<数据类型>();
ArrayList<数据类型> lists = new ArrayList<数据类型>();
LinkedList<数据类型> lists = new LinkedList<数据类型>();
HashMap<数据类型 ,数据类型> lists = new HashMap<数据类型 ,数据类型>();
- 集合的四种遍历方法
- 普通for – HashSet不能用这个方法
for (int i = 0; i < lists.size(); i++)
2. 增强型的for
for (Object obj :lists)
3. 数组
Object[] news = newsList.toArray();
for (int i = 0; i < news.length; i++)
4. 迭代器
Iterator iterator = newsList.iterator();
while (iterator.hasNext())
System.out.println(iterator.next());