List集合的实现类
1.ArrayList
数组实现, 查找快, 增删慢
2.LinkedList
链表实现, 增删快, 查找慢
3.Vector
原理和ArrayList相同, 线程安全, 效率低
set集合的实现类
a.HashSet
去重复, 速度快
HashSet在存储元素的时候, 先调用对象的hashCode方法, 计算一个哈希值, 然后在集合中查找是否有哈希值相同的对象
如果没有哈希值相同的对象, 直接存入
如果有哈希值相同的对象, 则和哈希值相同的对象进行equals比较
equals比较结果为false就存入
equals比较结果为true则不存
如果我们想在HashSet中存储自定义对象, 并且去重复, 那么这个自定义的类必须重写hashCode和equals方法.
b.TreeSet
去重复, 排序
在向TreeSet中存储元素的时候, TreeSet会使用指定的比较算法对存储元素进行排序, 内部以二叉树形式进行存储.
指定比较算法的方式:
自然顺序: 在类上实现Comparable接口, 重写compareTo方法, 在方法中定义比较算法.
比较器顺序: 定义类实现Comparator接口, 重写compare方法, 创建比较器对象, 传入TreeSet构造函数.
如果我们想在TreeSet中存储自定义对象, 并且排序, 要么这个自定义的类实现Comparable接口, 要么在TreeSet中传入Comparator.
c.LinkedHashSet
去重复, 保留存储顺序
是HashSet的子类, 同样使用哈希算法进行去重复.
|