1.集合接口Collection (List ,Set),Map
(1)面试题:java 三大集合接口有哪些??
①List Set Map
(2)Collection
存放一组 无序,不唯一的对象集合
(3)List
存在一组有序(插入的顺序),不唯一的对象集合
(4)Set
存放一组无序,唯一的对象集合
(5)Map
存放一组键值对集合(key ,value)
Key 唯一 value 不唯一
2.集合实现类
(1)List
①面试题:ArrayList /LinkedList 异同
1)存储结构:ArrayList 是基于动态数组,LinkedList 基于链表
2)ArrayList 遍历,查询的效率高
3)LinkedList 插入和删除效率高
②ArrayList
1)实现的是可变的数组
2)遍历和随机访问的效率高
3)常用方法
a.Collection 方法
a)add(Object obj) 添加
b)remove(Object obj) 删除
c)Contains(Object obj) 是否包含
d)clear() 清空
e)isEmpty() 判断是否为空
f)iterator() 迭代器
g)toArray() 转换为数组
h)size() 长度
i.数组长度.length属性
b.ArrayList 特有的方法
a)add(int index, Object obj) 添加
b)remove(int index) 删除
c)get(int index) 获取
③LinkedList
1)链表的存储方式
2)插入和删除的效率高
3)常用特有方法
a.addFirst(Object obj)
b.addLast(Object obj)
注意事项:如果在此方法之后继续添加,那么最后一条就变成了最新添加的
c.removeFirst()
d.removeLast()
e.getFirst()
f.getLast()
3.HashCode
(1)每个对象都有一个hashCode
(2)同一个hashCode 可以对应不同的对象
(3)不同的HashCode 肯定是不同的对象
(4)不同的对象也可能是同一个hashCode
4.Set -HashSet
(1)面试题:去重原理
①先判断hashCode() 是否相同,不同添加
②HashCode() 相同的情况,判断equals()
5.集合的四种遍历方法
(1)普通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());
02-01
808
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)