面向函数式编程@FunctionalInterface
-
1:面向函数式编程四大点:
/** * 面向函数式编程 * 1 拷贝方法的后面小括号(有参数就带参数),写死右箭头,落地大括号(内写方法的实现)---lambda表达式 * 2 本质就是接口中只有一个方法时,jdk8 会自动在接口上默认@FunctionalInterface * 3 default 就是在接口定义方法上,实现了方法 可以允许存在多个default方法 * 4 static 静态代码块,可以运行存在多个default方法` */
eg:
public static void main(String[] args) {
/* 匿名内部类方式调用无参数无返回值的foo接口的方法·
Foo foo1=new Foo() {
@Override
public void sayhello() {
System.out.println("我要sayhello--匿名内部类方式调用无参数无返回值的foo接口的方法");
}
};
foo1.sayhello();
*/
/* 使用lambda表达式调用无参数无返回值的foo接口的方法
使用:拷贝小括号,写死右箭头,落地大括号+表达式
Foo foo2=()->{System.out.println("我要sayhello--使用lambda表达式调用无参数无返回值的foo接口的方法");};
foo2.sayhello();
*/
// 使用lambda表达式调用有参数有返回值的foo接口的方法
Foo foo3=(int x,int y)->{
System.out.println(" 使用lambda表达式调用有参数有返回值的foo接口的方法:");return x+y;};
System.out.println(foo3.add(3, 4));
// 使用静态代码块或者default的接口方法时,只用接口方法. 就可以了
System.out.println(Foo.div(10, 5));
}
-
2:Collection 和Collections
- Collection 是一个集合接口,提供了对集合对象进行基本操作的通用接口方法
- Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
-
3:ArrayList的使用错误实例
-
出错的代码及其异常: //异常: java.util.ConcurrentModificationException
//异常 java.util.ConcurrentModificationException public static void main(String[] args) { //使用了Arraylist是一种线程不安全的方法 List<Object> list = new ArrayList<>(); for (int i=0;i<30;i++){ new Thread(()->{ //使用uuid来随机生成,然后转换为字符串,并且将字符串分割取出0-8位 list.add(UUID.randomUUID().toString().substring(0,8)); System.out.println
-