一:lambda表达式
- 定义
lambda表达式:是Java8中的新特性
lambda表达式:可以理解为只有一个抽象方法的接口
Java8中引入Lambda表达式,使得java可以函数式编程,在并发性能行迈出了实质性一步
- 函数式编程
- 比较lambda表达式和匿名内部类
- 基本语法:
例子:
- lambda表达式在方法引用和构造器引用
1.引用类方法
2.引用特定对象的实例方法
3.引用某类对象的实例方法
4.引用构造方法
- lambda表达式的实际应用
1.遍历集合
2.多线程的使用
3.Collections排序的使用
4.动态代理
二:集合
- 集合和数组的区别
- 分类
- Collection
1.Collection中定义的整个集合体系最共性的方法
- 迭代器
- List和Set
List是有序可重复的
List的特有方法:
LinkedList的特有方法:
Set是不可重复的,无序的
TreeSet可以实现排序和去重
- Vector
- 泛型
1.定义: 泛型:通过<数据类型>接收一种数据类型,在编译的时候会使用这种数据类型检测集合中的元素,
如果元素不是<>中规定的类型,就不允许添加到当前的集合中(编译失败)2.作用:(1)使用了泛型不再需要进行容错处理,向下转型,强制类型转换----简化代码
(2)将运行阶段的问题提前到编译阶段检查,提高了代码的安全性和编程效率3.泛型可以修饰的地方:类、方法、接口
泛型应用在类上:
泛型应用在方法上(泛型在使用时可以一次定义多个,之间使用逗号隔开):
泛型应用在接口上:
- Java中?的使用:
?:通配符,可以表示一种或几种数据类型
限制上限:<?extends E>:限制的是整个的<>可以取的泛型类型的上限是E,<>中可以取的类型是E及E的子类
限制下限:<? super E>::限制的是整个的<>可以取的泛型类型的下限是E,<>中可以取的类型是E及E的父类
例子:
- 增强for循环
增强for循环可以遍历的内容有:数组,Collection,Map。但是Map不能直接遍历
结构: for(元素:数组/Collection){
内容
}
原理:每次遍历开始后,会自动从数组中依次取出一个元素放入前面的变量中,当次循环的操作使用的就是这个元素.
遍历完成之后,会自动进行第二次遍历.一直到数组的末尾.所有元素遍历结束.循环停止.eg:遍历Map
- Collections:封装了大量操作Collection的工具
1.使用Collections排序
第一种排序:默认按照字典进行排序
注意:要想list中的元素可以按照字典排序,元素必须实现Comparable接口2.倒叙字典排序
3.求最大值
eg:Collections的方法可以穿进去一个比较器对象,让元素按照比较器的规则来比较
比较器要实现Comparator接口重写里面的compare方法
例如: