Lambda表达式相关:
基础涉及: java 基础语音 、 03 java 语言高级 - 05 异常与多线程 - Lambda
public class Mylearn_2 { public static void main(String[] args) { //使用匿名内部类的方式实现多线程。 new Thread(new Runnable() { public void run() { System.out.println(Thread.currentThread().getName()+"新线程创建了"); } }).start(); lambdaDemo(); } //使用lambda表达式、实现多线程 public static void lambdaDemo() { new Thread(()->{ System.out.println(Thread.currentThread().getName()+"新线程创建了"); }).start(); } //lambda表达式 标准格式 //由三部分组成: a.一些参数、b.一个箭头、c.一段代码 //格式: (参数类型 参数名称)-> {代码语句} //解释说明格式: }
例子: 用 lambda 表达式、 对Person对象进行排序(按年龄)。
这里面出现了toString方法的辨析、 在定义一个新类的时候,这个东西要撞上。
下面是代码: (简单、先理解、再掌握)
import java.util.*; public class Mylearn_2 { public static void main(String[] args) { } public static void method_1() //辅助理解toString方法。 { Integer[] arr = {1,2,3,4,5,6}; for(Integer x : arr) { System.out.println(x.toString()); } } public static void lambda() //lambda表达式对对象进行按年龄排序的操作 { Person[] arr = { new Person("柳岩",30), new Person("地理热吧",20), new Person("鼓励纳扎",21) }; Arrays.sort(arr,(Person o1,Person o2)->{ return o1.getAge()-o2.getAge(); }); for(Person p : arr) { System.out.println(p); } } public static void method() //不用lambda表达式、传统的方法对这Person对象进行年龄排序。 { Person[] arr = { new Person("柳岩",30), new Person("地理热吧",20), new Person("鼓励纳扎",21) }; Arrays.sort(arr,new Comparator<Person>() { public int compare(Person o1,Person o2) { return o1.getAge()-o2.getAge(); } } ); for(Person p : arr) { System.out.println(p); } } } class Person { private String name ; private int age; Person(String name,int age) { this.name = name; this.age = age; } public int getAge() { return age; } public String getName() { return name; } public String toString() { return "Person{"+"name:"+name+",age:"+age+"}"; // return "123"; // 这里的toString方法是一定要存在的,可以注释后、打印 Person 任意对象 //toString的讲解: https://blog.csdn.net/qq_34626097/article/details/83154781 } }