lambda表达式及jdk异步

来源:互联网 发布:nba2k16数据 编辑:程序博客网 时间:2024/05/21 14:15

lambda表达式用在jdk8 中,用来代替匿名方法;

简单例子如下:

//java 8方式new Thread (() -> System.out.println("")).start();
又如:
List list=new ArrayList<>();list.add("asdfsafsaf");list.forEach((param) -> System.out.println(param));
再回顾下匿名类,比如new A().getMethod()方法就是匿名类;
Comparator<String> comp        = (first, second) // Same as (String first, String second)        -> Integer.compare(first.length(), second.length());
除此有初步了解外,
再了解一下jdk8当中对collections新加的接口方法
java.util.Collection接口添加新方法,如stream()parallelStream()forEach()removeIf()等等。
stream:Stream主要是对collections原有功能的增强,比如聚合,过滤等功能;
 @return a sequential {@code Stream} over the elements in this collection
List<String> output = wordList.stream().map(String::toUpperCase).collect(Collectors.toList());
如:
 Integer[] sixNums = {1, 2, 3, 4, 5, 6}; Integer[] evens =         Stream.of(sixNums).filter(n -> n%2 == 0).toArray(Integer[]::new);/* for(Integer z:evens){     System.out.println(z); }*/ Arrays.stream(evens).forEach(n -> System.out.println(n));

jdk的异步代码如下:
public  String senSms(String mobile,String msg, String appType, String deviceType){   /*if (envFile.getCloseSmsSend() == 1){      return "";   }*/       CompletableFuture.supplyAsync(() -> {             String code = sendSmsCenter(mobile, msg, VerifyUtil.isInteger(appType) ? Integer.valueOf(appType) : null, VerifyUtil.isInteger(deviceType) ? Integer.valueOf(deviceType) : null);           return code;       }, taskExecutor);   return "";}