ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java8——stream

2021-07-26 16:04:36  阅读:185  来源: 互联网

标签:stream List System limit forEach println java8


package stream;

import com.sun.imageio.plugins.common.InputStreamAdapter;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author: wu linchun
 * @time: 2021/7/26 14:19
 * @description: java8 stream
 */

public class Java8Test {
    public static void main(String[] args) {
        //filter
        //初始化一个filter_list
        List<String> filter_list = Arrays.asList("123", "234", "ssa", "ccd", "hhh", "", "");
        //遍历输出filter_list
        filter_list.forEach(System.out::println);
        //过滤调filter_list中的某些值(过滤掉hhh和ccd)
        List<String> filter = filter_list.stream().filter(String -> !String.equals("hhh") && !String.equals("ccd")).collect(Collectors.toList());
        filter.forEach(System.out::println);

        //map
        List<Integer> map_list1 = Arrays.asList(1, 2, 2, 4, 5, 6);
        //给map_list1中所有值*2
        List<Integer> maplist = map_list1.stream().map(i -> i * 2).collect(Collectors.toList());
        //给map_list1中所有值*2并过滤掉重复值
        List<Integer> mapdistinctlist = map_list1.stream().map(i -> i * 2).distinct().collect(Collectors.toList());
        maplist.forEach(System.out::println);
        mapdistinctlist.forEach(System.out::println);

        //limit
        Random random = new Random();
        //生成随机数并只遍历输出10个
        random.ints().limit(10).forEach(System.out::println);
        List<Integer> limit_list1 = Arrays.asList(1, 10, 2, 4, 5, 6);
        //只取limit_list2的前三个并对这两个数进行升序排序(先取前3个值再对这3个排序)
        List<Integer> limit_list2 = limit_list1.stream().limit(3).sorted().collect(Collectors.toList());
        //先对limit_list2_1升序排序,再取前三个
        List<Integer> limit_list2_1 = limit_list1.stream().sorted().limit(3).collect(Collectors.toList());
        //用自己定义的比较器进行排序
        List<Integer> limit_list3 = limit_list1.stream().sorted(new MyComparetor()).collect(Collectors.toList());
        List<String> limit_list4 = Arrays.asList("a223", "tsr", "bdd", "cdd", "caa", "a122");
        List<String> limit_list5 = limit_list4.stream().sorted(new MyComparetor1()).collect(Collectors.toList());
        limit_list2.forEach(System.out::println);
        limit_list2_1.forEach(System.out::println);
        limit_list3.forEach(System.out::println);
        limit_list5.forEach(System.out::println);

        //sorted
        Random random1 = new Random();
        random1.ints().limit(10).sorted().forEach(System.out::println);

    }

    static class MyComparetor implements Comparator<Integer> {

        @Override
        public int compare(Integer o1, Integer o2) {
            //升序:o1-o2
            //降序:o2-o1
            return o1 - o2;
        }
    }

    static class MyComparetor1 implements Comparator<String> {

        @Override
        public int compare(String o1, String o2) {
            //升序:o1.compareTo(o2)
            //降序:o2.compareTo(o1)
            return o1.compareTo(o2);
        }
    }
}

标签:stream,List,System,limit,forEach,println,java8
来源: https://blog.csdn.net/weixin_42032770/article/details/119111357

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有