List 与 Set
List 接口
1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
2.有索引,包含了一些带索引的方法
3.允许存储重复的元素
List 接口中带索引的方法 (特有)
1.add 添加
2.get 获取
3.remove 删除
4.set 替换
List 集合下的 ArrayList
不同步即为 多线程
多线程效率高
ArrayList 增加删除效率慢 但是查找快
底层为 数组结构
List 集合下的 LinkedList
同样不同步 多线程
底层为链表结构 查询慢,增删快
大部分为操作 首尾元素方法
含有常用方法
1.addFirst 将指定元素内容插入列表的开头
2.addLast 将指定元素内容插入列表末尾
3.getFirst 获取列表第一个元素
4.getLast 获取列表最后一个元素
5.remove 删除列表第一个元素
6.removeLast 移除并返回此列表的最后一个元素
7.push 从此列表所表示的堆栈处弹出一个元素 效果和addFirst 差不多
8.pop 相当于删除第一个元素
List 集合下的 Vector
Vector 可增长的对象数组
与ArrayList一样底层是数组 但是为单线程
它的方法
addElement 将指定的组件添加到此向量的末尾,将其大小增加1
可用迭代器遍历
Set接口
特点:
不包含重复元素
没有索引 不能通过普通for循环遍历
Set集合下的HashSet
特点:
为哈希表结构 查询速度非常快
没有存储顺序 无序集合
多线程
注意:在使用 HashSet 自定义存储数据时,应重写hascode equals
Set集合下的LinkedHashSet
特点:
底层是 哈西表 加 链表
加了一条链表保证了元素有序 不允许重复