java8中的stream

public class ArraysSort {
    public static void main(String[] args)
    {
    //大寫轉換
     String [] wordlist = {"Pdsgdfgdf","jfsdkjfksdfg","sdfusdf"};
        List<String> output = Arrays.stream(wordlist).map(String::toUpperCase).collect(Collectors.toList());
        System.out.println(output);
//list元素平方
        List<Integer> list = Arrays.asList(1,2,3,4);
        List<Integer> squareNums = list.stream().map(n->n*n).collect(Collectors.toList());
        System.out.println(squareNums);

//各種數據類型的轉換。
        Stream  stream = Stream.of("a","b","c");
        String [] strArray = new String[]{"a","b","c"};
        //stream = Stream.of(strArray);
        //System.out.println(stream);
        //stream = Arrays.stream(strArray);
        //System.out.println(stream);
        List<String> list1 = Arrays.asList(strArray);
        stream  = list1.stream();
        //System.out.println(stream);
        List<String> list2 = (List<String>) stream.collect(Collectors.toList());
        System.out.println(list2);
        //一個 Stream 只可以使用一次
        stream  = list1.stream();
        Set<String> set = (Set<String>) stream.collect(Collectors.toSet());
        System.out.println(set);
        stream  = list1.stream();
        Stack stack = (Stack) stream.collect(Collectors.toCollection(Stack::new));
        System.out.println(stack);
        stream  = list1.stream();
        String str = stream.collect(Collectors.joining()).toString();
        System.out.println(str);


        List<String> list4 = Arrays.asList("a","jjgjf");
        List<String> out  = list4.stream().map(String::toUpperCase).collect(Collectors.toList());
//輸出字符長度大於3的字符串並轉換爲大寫。
        Stream.of("one", "two", "three", "four")
                .filter(e -> e.length() > 3)
                .peek(e -> System.out.println("Filtered value: " + e))
                .map(String::toUpperCase)
                .peek(e -> System.out.println("Mapped value: " + e))
                .collect(Collectors.toList());
//結果:
        //Filtered value: three
        //Mapped value: THREE
        //Filtered value: four
        //Mapped value: FOUR


        List<Integer> list23 = Arrays.asList(1,2,3,4,5);
        Integer sum = list23.stream().reduce(0,(a,b)->(a+b));  
        //求和
        System.out.println(sum);


        String concat = Stream.of("A","B","C","D").reduce("",String::concat); 
        //字符串拼接
        System.out.println(concat);

        double minvalue = Stream.of(-1.5,1.0,-3.0,-2.0).reduce(Double.MAX_VALUE,Double::min);  
        //找出最小值
        System.out.println(minvalue);

        double minvalue1 = Stream.of(-1.5,1.0,-3.0,-2.0).reduce(0.0, Double ::sum);   
        //有初始化爲0的求和
        System.out.println(minvalue1);

        double minvalue2 = Stream.of(-1.5,1.0,-3.0,-2.0).reduce(Double::sum).get();     
        //沒有初始化的求和
        System.out.println(minvalue2);

        concat = Stream.of("a", "B", "c", "D", "e", "F").filter(x->x.compareTo("Z")>0).reduce("",String::concat);
        //將大於‘Z’的字符拼接起來。
        System.out.println(concat);    
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章