一 List集合(util包下)
1.1 有序(存取顺序一致),可重复,是Collection的子接口.
1.2 特有的功能跟索引相关
1.3 常用方法
*add(E e)
*add(int index,E e) 指定位置添加元素
*get(int index) 获取指定位置元素
*remove(int index) 返回被删除指定位置上的元素
*set(int index,E e) 返回被替换掉的元素
1.4 ListIterator接口的介绍
list集合特有的迭代器(现在已不用)
ConcurrentModificationException 并发修改异常(遍历集合的同时增加元素)
*ListIterator这个迭代器可以实现并发修改,用迭代器的增加方法add(E e),内部会同步到集合中.
1.5 数据结构
*常用结构:堆栈 列队 数组 链表
*栈:先进后出 栈的出口和入口都是顶端位置 压栈 存元素 弹栈 取元素
*队列: 先进先出 入口和出口各占一侧
*数组结构: 查询效率高 增删慢
*链表:查询慢 增删快
1.6 LinkedList集合
*内部是链表结构,所以多了大量操作首尾的方法,
*链表结构 效率高 线程不安全
*addFirst(E e)
*addLast(E e)
*getFirst()
*getLast()
*removeFirst()
1.7 Vector集合(面试题 三个的区别联系)
*数组结构 查询快 增删慢
*效率低 已不用 线程安全
二 set集合
2.1 无序 不能重复(内部用equals方法进行比较)
2.2 存和取的顺序是随机的
2.3 有重复的就不再添加进去
2.4 哈希表(保证元素唯一 数组+链表)依赖于
hashcode 根据 哈希计算出来的 假的地址值
两个元素hash值一样才进行equals比较
equals方法
true:说明重复,不会添加到集合中
false:可以添加
2.5 hashset存自定义类型
自定义类型需要重写hashcode和equals方法才能保证存入集合的元素唯一.
2.6 LinkedHashSet
特点:存取一致,不能存重复,没有索引