Collection的分类
———List
特点:
有序:存储和取出位置一致
不唯一:包含重复元素
分类
1. ArrayList:底层是数组,查询快,增删慢,线程不安全,效率高
2. Vector:底层是数组,查询快,增删慢,线程安全,效率低
3. LinkedList:底层是链表,查询慢,增删快,线程不安全,效率高
List遍历对应的遍历方式有三种
1.通过迭代器
2. 通过一般for
3. 通过增强for:强烈推荐此方法,简单
———Set
特点:
唯一:不包含重复元素
无序:存储和取出的位置不一致,不是数字 意义上的从大到小或从小到大的排序
分类:
1.HashSet
底层是哈希表,而哈希表又依赖两个方法hashcode()和equals()
底层具体实现逻辑:
判定哈希值是否相同
相同:通过equals方法进一步判断
返回True,则不处理
返回false,则添加至集合
不同:直接将元素添加至集合
2.TreeSet
底层是红黑树(可以保持平衡的二叉树)
特点:有序,唯一
排序的两种方式
1. 自然顺序:通过让元素所属的类继承接口Comparable的compareto()方法,进行具体的大小比对操作
2. 比较器排序:主要是实现Compator接口的Compare()方法,一般通过匿名内部类来操作,便于维护
遍历方式:
1.通过迭代器
2.通过增强for