Java8綜合練習

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;
	    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章