集合(Collection):
java中集合都定义在util包
集合的特点
用于存储对象的容器。
集合的长度是可以改变的。
集合中不可以存储基本数据类型值
java集合框架图
源于百度图片(红框标记的需要了解和掌握)
我们要学习的主要有list、set、map
集合的共性方法有:
List
List 有序,可重复,List常见方法有以下:
ArrayList
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程不安全,效率高。
Vector
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程安全,效率低
LinkedList
优点: 底层数据结构是链表,查询慢,增删快。
缺点: 线程不安全,效率高
Set
HashSet:底层数据结构是哈希表。
无序,唯一、不能重复,依赖两个方法:hashCode()和equals()
LinkedHashSet:底层数据结构是链表和哈希表。(FIFO插入有序,唯一)
1.由链表保证元素有序 、2.由哈希表保证元素唯一
TreeSet:底层数据结构是红黑树。(唯一,有序)
Map<K,V>
Map一次添加一对数据
Map的Key不能重复,Value可以重复
常见方法:
HashMap
看到这里不得不就说一下HashMap:
1.内部存储结构:数组+链表+红黑树(JDK8)
2.默认容量16,默认装载因子0.75。
3.key和value对数据类型的要求都是泛型。
4.key可以为null,放在table[0]中。
5.hashcode:计算键的hashcode作为存储键信息的数组下标用于查找键对象的存储位置。equals:HashMap使用equals()判断当前的键是否与表中存在的键相同。
本文少部分图片转载于https://blog.csdn.net/weizhengzhou520/article/details/81806539