1. 程式人生 > 其它 >模型轉換、模型壓縮、模型加速工具

模型轉換、模型壓縮、模型加速工具

package com.lambda;

import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
     Stream
 * @author qjw
 * @version V1.0
 * @since 2021-12-02 09:14:00
 */
public class Practice {
    public static void main(String[] args) {
          //建立一個數組1, 23, 4, 4, 22, 34, 45, 11, 33使用 lambda 求出陣列中的最小數將陣列去重,
          // 並將去重後陣列的每個元素乘以 2,再求出乘以 2 後的陣列的和,比如陣列1,2,3,3,去重後為1,2,3,乘以 2 後為2,4,6,最後的和為12。
        int[] arr =new int[]{1, 23, 4, 4, 22, 34, 45, 11, 33};
        System.out.println("最小值:"+ Arrays.stream(arr).min());
        System.out.println("陣列去重*2求和:"+Arrays.stream(arr).distinct().map((i)->i*2).sum());
        Arrays.stream(arr).sorted().forEach(System.out::println);

        //Stream 提供了新的方法 'forEach' 來迭代流中的每個資料
        Random random=new Random();
        random.ints().limit(10).forEach(System.out::println);

        //filter 方法用於通過設定的條件過濾出元素
        List<String> strings=Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
        System.out.println("原list:"+strings);
        List<String> filtered = strings.stream().filter(String -> !String.isEmpty()).collect(Collectors.toList());
        long count = strings.parallelStream().filter(String -> !String.isEmpty()).count();
        String mergedString  = strings.stream().filter(String -> String.isEmpty()).collect(Collectors.joining(","));
        List<String> collect = strings.stream().filter(String -> String.length() == 3).collect(Collectors.toList());
        System.out.println("長度為3的字串:"+collect);
        System.out.println("過濾後序列list:"+filtered);
        System.out.println("過濾後list長度:"+count);
        System.out.println("合併字串:"+mergedString);

        //map 方法用於對映每個元素到對應的結果 求平方
        List<Integer> numbers=Arrays.asList(3, 2, 2, 3, 7, 3, 5);
        System.out.println("原list:"+numbers);
        List<Integer> integerList = numbers.stream().map(i -> i * i).collect(Collectors.toList());
        System.out.println("平方後list:"+integerList);

        //另外,一些產生統計結果的收集器也非常有用。它們主要用於int、double、long等基本型別上,它們可以用來產生類似如下的統計結果。
        IntSummaryStatistics statistics = numbers.stream().mapToInt((x) -> x).summaryStatistics();
        System.out.println("最大數:"+statistics.getMax());
        System.out.println("最小數:"+statistics.getMin());
        System.out.println("之和:"+statistics.getSum());
        System.out.println("平均數:"+statistics.getAverage());
        //sorted 方法用於對流進行排序
        random.ints().limit(10).sorted().forEach(System.out::println);
    }
}
輸出結果
最小值:OptionalInt[1]
陣列去重*2求和:346
1
4
4
11
22
23
33
34
45
1048817938
1474388850
-245761555
-1861499339
109951867
-2118280173
-53673656
799177281
-1867130854
1253033192
原list:[abc, , bc, efg, abcd, , jkl]
擷取後:java.util.stream.ReferencePipeline$2@41cf53f9
長度為3的字串:[abc, efg, jkl]
過濾後序列list:[abc, bc, efg, abcd, jkl]
過濾後list長度:5
合併字串:,
原list:[3, 2, 2, 3, 7, 3, 5]
平方後list:[9, 4, 4, 9, 49, 9, 25]
最大數:7
最小數:2
之和:25
平均數:3.5714285714285716
-1558320411
-1198681775
-962899507
-596476177
-213302277
-151212469
485692737
596302022
1469181499
2091743084