Arrays.stream()相关的常用语法集合

80 阅读1分钟
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class LambdaTest {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5};

        // Test map (doubles each element)
        System.out.println("testMap:");
        testMap(nums);
        System.out.println();

        // Test filter (filters elements greater than 3)
        System.out.println("testFilter:");
        testFilter(nums);
        System.out.println();

        // Test foreach (prints each element)
        System.out.println("testForeach:");
        testForeach(nums);
        System.out.println();

        // Test reduce (calculates sum of elements)
        System.out.println("testReduce:");
        testReduce(nums);
        System.out.println();

        // Test anyMatch (checks if any element is equal to 1)
        System.out.println("testAnyAllNoneMatch:");
        testAnyAllNoneMatch(nums);
        System.out.println();

        // Test distinct (removes duplicate elements)
        System.out.println("testDistinct:");
        testDistinct(nums);
        System.out.println();

        // Test collect (collects elements into a List)
        System.out.println("testCollect:");
        testCollect(nums);
        System.out.println();

        // Test flatMap (flattens a 2D array)
        System.out.println("flatMap:");
        flatMap();
        System.out.println();

        // Test max (finds maximum element)
        System.out.println("max:");
        max(nums);
        System.out.println();

        // Test min (finds minimum element)
        System.out.println("min:");
        min(nums);
    }

    public static void testMap(int[] nums) {
        int[] doubled = Arrays.stream(nums)
                .map(x -> x * 2)
                .toArray();
        Arrays.stream(doubled).forEach(x -> System.out.println(x));
    }

    public static void testFilter(int[] nums) {
        int[] greaterThanThree = Arrays.stream(nums)
                .filter(x -> x > 3)
                .toArray();
        Arrays.stream(greaterThanThree).forEach(x -> System.out.println(x));
    }

    public static void testForeach(int[] nums) {
        Arrays.stream(nums).forEach(x -> System.out.println(x));
    }

    public static void testReduce(int[] nums) {
        int sum = Arrays.stream(nums)
                .reduce(0, (x, y) -> x + y);
        System.out.println(sum);
    }

    public static void testAnyAllNoneMatch(int[] nums) {
        boolean anyMatch = Arrays.stream(nums)
                .anyMatch(x -> x == 1);
        System.out.println(anyMatch);
    }

    public static void testDistinct(int[] nums) {
        int[] distinct = Arrays.stream(nums)
                .distinct()
                .toArray();

        Arrays.stream(distinct).forEach(x -> System.out.println(x));
    }

    public static void testCollect(int[] nums) {
        List<Integer> list = Arrays.stream(nums)
                .boxed()
                .collect(Collectors.toList());
        System.out.println(list);
    }

    public static void flatMap() {
        int[][] nums = {{1, 2}, {3, 4}, {5, 6}};
        int[] flattened = Arrays.stream(nums)
                .flatMapToInt(Arrays::stream)
                .toArray();
        System.out.println(Arrays.toString(flattened));
    }

    public static void max(int[] nums) {
        int max = Arrays.stream(nums)
                .max()
                .getAsInt();
        System.out.println(max);
    }

    public static void min(int[] nums) {
        int min = Arrays.stream(nums)
                .min()
                .getAsInt();
        System.out.println(min);
    }
}
```
```