StreamAPI中常用的方法

作者: tinuv 发布时间: 2019-09-09 浏览: 1762 次 编辑

StreamAPI中常用的方法

filter()

lambda函数传入一个参数,返回符合条件的

    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>() {
            {
                add("test1");
                add("test2");
                add("test3");
                add("test4");
            }
        };
        strings.stream()
                .filter(s->s.charAt(0)=='t')
                .forEach(s->System.out.print(s+" "));
    }


forEach()

不返回,直接消费,labmda函数传入一个参数,即流中的一个元素,见上例

limit(long maxSize)

返回一个指定大小的流(顺序)

    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>() {
            {
                add("test1");
                add("test2");
                add("test3");
                add("test4");
            }
        };
        strings.stream()
                .limit(3)
                .forEach(s -> System.out.print(s + " "));
    }


max()

按指定方式比较的最大值

    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>() {
            {
                add("test1");
                add("test2");
                add("test3");
                add("test4");
            }
        };
        String s = strings.stream()
                .max((s1, s2) -> {
                    return s1.compareTo(s2);
                }).get();
        System.out.print(s);
    }

min()

与max()相似,见上例


sorted()

按指定方式排序

    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>() {
            {
                add("test1");
                add("test2");
                add("test3");
                add("test4");
            }
        };
        strings.stream()
                .sorted((s1, s2) -> {
                    return s1.compareTo(s2);
                }).forEach(s -> System.out.print(s + " "));
  
    }

mapToInt()

将元素映射成一个整型


    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>() {
            {
                add("test1");
                add("test2");
                add("test3");
                add("test4");
            }
        };
        strings.stream()
                .mapToInt(s -> {
                    return s.charAt(4) - '0';
                })
                .forEach(i -> {
                    System.out.print(i + " ");
                });
    }

toArray

将流转化为一个数组


    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>() {
            {
                add("test1");
                add("test2");
                add("test3");
                add("test4");
            }
        };
        int[] a = strings.stream()
                .mapToInt(s -> {
                    return s.charAt(4) - '0';
                })
                .toArray();
        for (int i : a) {
            System.out.print(i + " ");
        }
    }



原文: https://tinuv.me/2019/03/21/stream-api.html