数据结构
栈(先进后出),
队列(先进先出),
数组(查询快,修改慢),
链表(查询慢,修改快),单向(无序)/双向链表(有序)。
红黑树(根,分支,叶.二分法查找,查询效率高)
根/叶:黑
叶:红
哈希表(数组(分组:相同哈希值为同组)+链表/红黑树(存储:相同哈希值的存储在链表/红黑树(链表超过8位))
List
list(ArrayList,LinkedList,Vector)
ArrayList:数组结构
LinkedList:双向链表结构
Set
set(HashSet,LinkedeHashSet)
HashSet:哈希表结构,查询效率高,根无序
LinkedeHashSet:哈希表+链表结构,查询效率高,用序
Map
java.util.Map<k,v>集合
Map集合的特点:
1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
2.Map集合中的元素,key和value的数据类型可以相同,也可以不同
3.Map集合中的元素,key是不允许重复的,value是可以重复的
4.Map集合中的元素,key和value是一一对应
java.util.HashMap<k,v>集合 implements Map<k,v>接口
HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别的快
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表|红黑树(链表的长度超过8):提高查询的速度
2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
java.util.LinkedHashMap<k,v>集合 extends HashMap<k,v>集合
LinkedHashMap的特点:
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
Hashtable:底层也是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢
线程池
线程池(Exectors.newFixThreadPool().submit(线程)提交任务执行,shutdown())
Lambda
Lambda表达式:是可推导,可以省略
凡是根据上下文推导出来的内容,都可以省略书写
可以省略的内容:
1.(参数列表):括号中参数列表的数据类型,可以省略不写
2.(参数列表):括号中的参数如果只有一个,那么类型和()都可以省略
3.{一些代码}:如果{}中的代码只有一行,无论是否有返回值,都可以省略({},return,分号)
注意:要省略{},return,分号必须一起省略