package com.yy.test;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");
/* Collections.sort(names, new Comparator<String>() {//java以前老版本的寫法
@Override
public int compare(String a, String b) {
return b.compareTo(a);
}
});*/
Collections.sort(names, (a,b) -> {
return b.compareTo(a);
});
for(String name:names){
System.out.println(name);
}
int num = 1;
//num = num+1;
Converter<String, Integer> a = (from) -> Integer.valueOf(from);
Integer m=a.convert("123");
System.out.println(m);
Converter<String, Integer> converter = Integer::valueOf;//這個是靜態方式導入
Integer n=converter.convert("1231");
System.out.println(n);
Converter<Integer, String> stringConverter = (from) -> String
.valueOf(from + num);
String str = stringConverter.convert(2);
System.out.println(str);// 輸出3
List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");
List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
System.out.println(filtered);// 輸出3
Integer value1 = null;
Integer value2 = new Integer(10);
// Optional.ofNullable - 允許傳遞爲 null 參數
Optional<Integer> q = Optional.ofNullable(value1);
// Optional.of - 如果傳遞的參數是 null,拋出異常 NullPointerException
Optional<Integer> b = Optional.of(value2);
System.out.println(sum(q, b));
}
public static Integer sum(Optional<Integer> q, Optional<Integer> b) {
// Optional.isPresent - 判斷值是否存在
System.out.println("第一個參數值存在: " + q.isPresent());
System.out.println("第二個參數值存在: " + b.isPresent());
// Optional.orElse - 如果值存在,返回它,否則返回默認值
Integer value1 = q.orElse(new Integer(0));
//Optional.get - 獲取值,值需要存在
Integer value2 = b.get();
return value1 + value2;
}
}
Java8綜合練習
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.