集合

来源:互联网 发布:ubuntu快捷键 编辑:程序博客网 时间:2024/06/10 11:43

 集合分为两大类 :

1.Collection(单列)

List :存取一致     可重复      有索引   不排序

     Vector           底层是数组  增删慢 查找快  线程安全 效率低

    ArrayList       底层是数组   增删慢 查找快  线程不安全  效率高

    LinkedList     底层是二叉树  增删快  查找慢  线程不安全  效率高

Set:存取不一致      不可重复    无索引   

   HashSet          底层由哈希算法实现

LinkedHashSet 底层是双向链表 但是也可以保证元素唯一    和HashSet原理一致是Set集合中唯一一个能保证怎么存就怎么取的集合对象  

  TreeSet        底层是二叉树
一般在开发中不需要对存储的元素排序 所以用HashSet比较多
TreeSet 面试时候比较多 两种排序  

1.排序的(升序) 自然排序 根据ASCII表大小排序

2.排重
3.无序(存取不一致)
4.底层是一个二叉树(左序中序右序)
5.只能存储同一种类型 才能排序 不然就会出现转换异常

总结:
遍历集合的时候
List:
普通for循环 使用get()获取元素
调用 iterator() hasNext() next()获取元素
增强for循环 只要可以使用Iterator 的类都可以使用

Vector 集合用的是 Enumeration
Set:
调用 iterator()
增强 for
2
.Map 

HashMap
底层是哈希算法实现 针对键
LinkedHashMap 底层是链表 针对键
TreeMap
底层是二叉树 针对键
开发中 用 HashMap较多
遍历集合 要转成Set 在使用Iterator
keySet()
entrySet()









原创粉丝点击