jdk8_lambda expression

1. Background:

package com.zhangwl.pg0922.pg02_Jdk8.Lambda.pkg01;

import java.util.Comparator;

/**
* @ClassName LengthComparator
* @Description 定制一个比较器用于排序
* @Author zhangwl
* @Date 2019/9/22 21:53
* @Version 1.0
**/
public class LengthComparator implements Comparator<String> {

@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
}


com.zhangwl.pg0922.pg02_Jdk8.Lambda.pkg01 Package; 

Import java.util.Arrays;

/ **
* @ClassName RunMain
* @Description
* @author zhangwl
* @date 2019/9/22 22:06
* @Version 1.0
* * /
public class RunMain {
public static void main (string [] args) {
/ * define an array of strings for comparison * /
string [] = strArr new new string [] { "BCC", "AC", "CAAD "," B "};
System.out.println (" before sorted array of strings: "+ Arrays.asList (strArr));
/ * a comparator for comparing a custom ordering element * /
lengthComparator lengthComparator new new lengthComparator = () ;
Arrays.sort (strArr, lengthComparator);
"array of strings after sorting:" System.out.println (+ arrays.asList(strArr));
}
}

The result:

Before sorted string array: [bcc, ac, caad, b]
array of strings after sorting: [b, ac, bcc, caad]

 Before jdk8, java not directly transmit a transmission code segment or a segment of code is not easy, java language is an object-oriented, it is necessary to construct an object, a method must be included in the class of this object, the method It can contain code segments needed; so was born Lambda expressions.

 Lambda expressions, in fact, must be passed a variable code segment and code specifications, for example: (String a, String b) -> {a + b}. Lambda expressions with expressions is a parameter which indicates that an anonymous inner class. 

2, case presentations:

com.zhangwl.pg0922.pg02_Jdk8.Lambda.pkg02 Package; 

Import java.util.Arrays;

/ **
* @ClassName LambdaRunMain
* @Description Lambda expression using a custom comparator purpose sorted string array
* @Author zhangwl
@date 2019/9/22 23:41 *
* @Version 1.0
** /
public class LambdaRunMain {

public static void main (String [] args) {

String [] = strArr new new String [] { "BCC", "AC" , "CAAD", "B"};
System.out.println ( "before sorted array of strings:" + Arrays.asList (strArr));
Arrays.sort (strArr, (First, SECOND) -> {
return First .length () - second.length ();
});
System.out.println ( "after sorted array of strings:" + Arrays.asList (strArr)) ;
}
}

operation result:

Before sorted string array: [bcc, ac, caad, b]
array of strings after sorting: [b, ac, bcc, caad]

 

Guess you like

Origin www.cnblogs.com/sico/p/11569997.html