asp网站文章自动更新,网站建设全屏,网站建设茂名,怎样写企业网站建设方案1.Lambda表达式 Lambda是一个匿名函数#xff0c;我们可以将Lambda表达式理解为一段可以传递的代码#xff08;将代码像数据一样传递#xff09;。 “-”#xff08;Lambda操作符#xff09;左边#xff1a;Lambda表达式的所有参数。右边#xff1a;Lambda体#x…1.Lambda表达式 Lambda是一个匿名函数我们可以将Lambda表达式理解为一段可以传递的代码将代码像数据一样传递。 “-”Lambda操作符左边Lambda表达式的所有参数。右边Lambda体Lambda需要执行的功能。
public class MyRunnable implements Runnable{Overridepublic void run() {System.out.println(这是一个实现Runnable接口的子线程);}
}
public class Test {public static void main(String[] args) {MyRunnable myRunnable new MyRunnable();//等价于Runnable runnable new Runnable(){Overridepublic void run() {System.out.println(这是一个实现Runnable接口的子线程);}};//等价于Runnable runnable1 ()- System.out.println(这是一个实现Runnable接口的子线程);Thread thread new Thread(myRunnable);thread.start();//等价于new Thread(new Runnable() {Overridepublic void run() {System.out.println(这是一个实现Runnable接口的子线程);}}).start();//等价于new Thread(() - System.out.println(这是一个实现Runnable接口的子线程)).start();}1.无参、无返回值
public interface Www {public abstract void print1();//无参、无返回值
}public class WwwTest {public static void main(String[] args) {Www www1 new Www() {Overridepublic void print1() {System.out.println(无参、无返回值);}};Www www2 ()- {System.out.println(无参、无返回值)};//等价于 当Lambda体只有一条语句的时候return和{}可以省略掉Www www3 ()- System.out.println(无参、无返回值);//以上三种方法相当于创建一个类实现了Www接口。//当运行方法时要使用对象名.print();}
} 2.无参、有返回值
public interface Www {public abstract String print2();//无参、有返回值//public abstract String print3(String name);//有参、有返回值//public abstract String print4(String name,int i);//有多个参、有返回值
}package lambda;public class WwwTest {public static void main(String[] args) {Www www1 new Www() {Overridepublic String print2() {return 无参、有返回值;}Www www2 ()- 无参、有返回值;//等价于Www www3 ()-{ return 无参、有返回值;};//以上三种方法相当于创建一个类实现了Www接口。//当运行方法时要使用对象名.print();}
} 3.有参、有返回值
public interface Www {public abstract String print3(String name);//有参、有返回值
}public class WwwTest {public static void main(String[] args) {Www www1 new Www() {Overridepublic String print3(String name) {System.out.println(name);return 有参、有返回值;}Www www2 (name)-{System.out.println(name);return 有参、有返回值;};//等价于 只有一个参数时可以省略Www www3 name-{System.out.println(name);return 有参、有返回值;};}
} 4.有多个参、有返回值
public interface Www {public abstract String print4(String name,int i);//有多个参、有返回值
}public class WwwTest {public static void main(String[] args) {Www www1 new Www() {Overridepublic String print4(String name, int i) {System.out.println(namei);return 有多个参、有返回值;}};Www www2 (name, i) - {System.out.println(namei);return 有多个参、有返回值;};}
} 5.类型推断数据类型可以省略因为编译器可以推断得出称为“类型推断”。
public interface Www {public abstract String print4(String name,int i);//有多个参、有返回值
}public class WwwTest {public static void main(String[] args) {Www www1 new Www() {Overridepublic String print4(String name, int i) {System.out.println(namei);return 有多个参、有返回值;}};Www www2 (String name,int i) - {System.out.println(namei);return 有多个参、有返回值;};//等价于Www www3 (name, i) - {System.out.println(namei);return 有多个参、有返回值;};}
}
2.forEachLambda 1.使用forEach和Lambda循环list集合
public class ArrayList {public static void main(String[] args) {ListString list new java.util.ArrayList();list.add(a);list.add(b);list.add(c);list.add(d);list.forEach(new ConsumerString() {Overridepublic void accept(String s) {System.out.println(s);}});System.out.println(--------------------);list.forEach(s - System.out.println(s));}
} 2.使用forEach和Lambda循环map集合
public class Student {private String name;public Student(String name) {this.name name;}public String getName() {return name;}public void setName(String name) {this.name name;}
}public class HashMap1 {public static void main(String[] args) {MapString,Student map new HashMap();map.put(a,new Student(张三));map.put(b,new Student(李四));map.put(c,new Student(王五));map.forEach((key,value)- System.out.println(key value.getName()));//使用for增强循环遍历map集合System.out.println();Set keys map.keySet();//返回键的集合for (Object key : keys) {System.out.println(keymap.get(key).getName());//get(key)根据键返回值}}
}
3.函数接口 只包含一个抽象方法的接口称为函数式接口。并且可以使用lambda表达式来创建该接口的对象可以在任意函数式接口上使用 FunctionalInterface 注解来检测它是否是符合函数式接口。同时javac也会包含一条声明说明这个接口是否符合函数式接口。 Java中的函数式编程体现就是Lambda表达式所以函数式接口即可以适用于Lambda使用的接口。
FunctionalInterface
public interface Www {public abstract void print();
}public class WwwTest {public static void main(String[] args) {Www www1 new Www() {Overridepublic void print() {System.out.println(aaaa);}};www1.print();Www www2 ()- System.out.println(aaaa);www2.print();}
}
当接口中写入两个抽象方法时会报错。 ·