Java的数组集合概括
Collection
1、List(存储有序,有索引,可以重复)
1.1、ArrayList
底层是数组实现的,线程不安全,查找和修改快,增删比较慢
1.2、LinkedList
底层是链表实现的,线程不安全,增删比较快,查找和修改计较慢
1.3、Vector
底层是数组实现的,线程是安全的,无论增删改查都比较慢
结论:
如果查找和修改多,用ArrayLIst
如果增和删多,用LinkedList
如果都多,用ArrayList
2、Set(存取无序,无索引,不可以重复)
2.1、HashSet
底层是哈希算法实现的
LinkedHashSet
底层是链表实现的,但是也是可以保证元素唯一,和HashSet原理一样
2.2、TreeSet
底层是二叉树算法实现
结论:一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多用HashSet,HashSet的效率比较高
TreeSet在面试的时候比较多
3、Map
3.1、HashMap
底层是哈希算法,针对键
3.1.1、LinkedHashMap
底层是链表,针对键
3.2、TreeMap
底层是二叉树算法,针对键
结论:
开发中用HashMap比较多,