1、对接口的理解,借口是不同方法的集合,接口中只定义相应的特征,不实现具体的方法,方法可以在不同的类当中具体实现
注意一个方法的特征仅包括方法的名字,参数的数目和种类
接口之间可以互相延伸,实现接口中具体的类的时候,注意用关键字implements
2、函数式接口特性,只定义一个抽象的方法
3、接口中的静态的方法,只要有实现这个接口的所有的类,都自动拥有默认的静态方法
4、引入lambda的目的在于代码的简洁性和可维护性,lambda允许使用表达式代替接口
比如利用lambda定义排序的方法:
package LambdaTest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class UseComparator {
public static void main(String args[])
{
List<String> strings = new ArrayList<String>();
strings.add("DDDD");
strings.add("BBBB");
strings.add("CCCC");
strings.add("AAAA");//比较相应英文单词的大小
Comparator<String> comparator=(str1,str2)->{
return str1.compareToIgnoreCase(str2);
};//重新定义类,重写comparator的比较方法
Collections.sort(strings, comparator);
for (String str:strings)
{
System.out.println(str);
}
}
}
1、此处利用lambda表达式避免重写一个方法,同时lambda表达式可以接受参数完成相应的功能,比如示例中lambda表达式接受了str1和str2两个参数
2、可实现动态的指定筛选的条件
所以使用lambda表达式主要是为了代码的简洁和可维护性