1. Java 8种基本类型:byte char short int long double float boolean数组
2. List set map安全
List:有序;可重复;数据结构
Set:无序;惟一;线程
执行顺序:首先判断hashCode()值:是否相同,对象
是:继续执行equals(),看其返回值,排序
是true,说明元素重复,不添加;接口
是false,就直接添加;hash
否:直接添加到集合效率
LinkedHashSet:底层数据结构由链表和hash表组成;由链表保证元素有序;由 hash表保证元素惟一;List
如何保证元素惟一性呢?
根据比较的返回值是不是0来决定。
如何保证元素的排序呢? 两种方式:
天然排序(元素具有比较性)
让元素所属的类实现Comparable接口
比较器排序(集合具有比较性)
让集合接收一个Comparator的实现类对象
HashMap:底层数据结构是hash表。线程不安全,效率高;
hash表依赖两个方法,hashCode()和equals();
执行顺序:首先判断hashCode()值:是否相同,
是:继续执行equals(),看其返回值,
是true,说明元素重复,不添加;
是false,就直接添加;
否:直接添加到集合
LinkedHashMap:
底层数据结构由链表和hash表组成;
由链表保证元素有序;
由hash表保证元素惟一;
HashTable:底层数据结构是hash表。线程安全,效率低;
hash表依赖两个方法,hashCode()和equals();
执行顺序:首先判断hashCode()值:是否相同,
是:继续执行equals(),看其返回值,
是true,说明元素重复,不添加;
是false,就直接添加;
否:直接添加到集合
TreeMap:底层数据结构是红黑树。(是一种自平衡的二叉树)。
如何保证元素惟一性呢?
根据比较的返回值是不是0来决定。
如何保证元素的排序呢?两种方式:
天然排序(元素具有比较性)
让元素所属的类实现Comparable接口
比较器排序(集合具有比较性)
让集合接收一个Comparator的实现类对象