【由浅入深 - Java笔记】玩转List:List过滤和筛选

news2024/10/5 17:25:02

在这里插入图片描述

文章目录

  • List过滤:Comparator、Comparable 和 Stream
    • 1. 使用list的Stream进行筛选
    • 2. 增强for循环遍历元素,进行筛选
    • 3. 使用list.foreach遍历
    • 4. 使用iterator遍历
    • 5. 视频笔记


List过滤:Comparator、Comparable 和 Stream

花时间精力去凿许多浅井还不如花相当多的时间和精力去凿一口深井。
                                 ——罗曼·罗兰

  在Java的编程中,如果要问,出现频率最高的Collection工具类是什么?毫无疑问,答案是List。本文分享几种在Java中,按照对象的属性,对List里面的元素进行过滤的常见方法。

1. 使用list的Stream进行筛选

/**
     * Java8以上,使用list的Stream进行筛选
     * @param userBeanList 用户列表
     * @return 筛选后满足条件的用户列表
     */
    public List<UserBean> filterByStream(List<UserBean> userBeanList) {
        return userBeanList.stream().filter(userBean -> Objects.nonNull(userBean))
                .filter(userBean -> userBean.getAge() >= 18)
                .collect(Collectors.toList());
    }

2. 增强for循环遍历元素,进行筛选

/**
     * for循环遍历元素,进行筛选
     * @param userBeanList 用户列表
     * @return 筛选后满足条件的用户列表
     */
    public List<UserBean> filterByFor(List<UserBean> userBeanList) {
        List<UserBean> newUserBeanList = new ArrayList<>();
        for (UserBean userBean : userBeanList) {
            if (userBean.getAge() >= 18) {
                newUserBeanList.add(userBean);
            }
        }
        return newUserBeanList;
    }

3. 使用list.foreach遍历

/**
     * 使用list.foreach遍历
     * @param userBeanList 用户列表
     * @return 筛选后满足条件的用户列表
     */
    public List<UserBean> filterByForEach(List<UserBean> userBeanList){
        List<UserBean> newUserBeanList = new ArrayList<>();
        userBeanList.forEach(userBean -> {
            if (userBean.getAge() >= 18) {
                newUserBeanList.add(userBean);
            }
        });
        return newUserBeanList;
    }

4. 使用iterator遍历

/**
     * 使用iterator遍历
     * @param userBeanList 用户列表
     * @return 筛选后满足条件的用户列表
     */
    public List<UserBean> filterByIterator(List<UserBean> userBeanList) {
        List<UserBean> newUserBeanList = new ArrayList<>();
        Iterator<UserBean> iterator = userBeanList.iterator();
        while (iterator.hasNext()) {
            UserBean userBean = iterator.next();
            if (userBean.getAge() >= 18) {
                newUserBeanList.add(userBean);
            }
        }
        return newUserBeanList;
    }

5. 视频笔记

  我是一名2022年06月毕业,初入职场的打工人。将工作中经常遇到的一些知识进行总结,欢迎小伙伴们批评指正哈!!! 随着工作经验的积累,内容将会持续更新哦…

  另外,本篇笔记也在小破站通过视频形式分享,欢迎访问 小破站视频笔记。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G无线技术基础自学系列 | 移动通信网络的演进

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 随着移动用户数量的不断增加&#xff0…

mac系统安装搭载Windows系统虚拟机方法教程

我们都知道macOS系统虽然相对windows系统而言更稳定&#xff0c;但macOS系统中可使用的软件数量较windows系统而言要少很多。对于macOS系统应用少的问题&#xff0c;我们可以使用虚拟机来解决。那么&#xff0c;苹果虚拟机好用吗&#xff1f;整体而言是可以的。苹果虚拟机怎么装…

0-搭建nodejs环境

1) 安装 nvm nvm 即 (node version manager)&#xff0c;好处是方便切换 node.js 版本 安装注意事项 要卸载掉现有的 nodejs提示选择 nvm 和 nodejs 目录时&#xff0c;一定要避免目录中出现空格选用【以管理员身份运行】cmd 程序来执行 nvm 命令首次运行前设置好国内镜像地…

小马哥的CSS驿站

目录 第一章 CSS概述 1.1语法 1.2注释 1.3CSS的创建 第二章 CSS选择器 1.id选择器 2.class选择器 3.标签选择器 4.子代选择器 5.后代选择器 6.相邻兄弟选择器 7.后续兄弟选择器 8.交集选择器 9.并集选择器 第三章 CSS样式 1.文本与文字样式 &#xff08;1&…

G2O学习 - 曲线拟合实例

学习使用G2O进行曲线拟合使用 1. 拟合目的&#xff0c;如何建立拟合的图模型 大概就是曲线拟合&#xff0c;求曲线 y ax^2 bx c 中 abc 的值。 但是我一直不明白如何获得下面图的。 我觉得应该是这样的 首先把abc视为一个变量&#xff0c;这个变量应该是一个矩阵【这里还…

Python和Pycharm安装教程

一、Python安装 1.进入官网下载Python 官网地址&#xff1a;Download Python | Python.org 官网下载可能会有些慢&#xff0c;请耐心等待 我这里把3.11的安装包和后面的Pycharm安装包都放到网盘里面了 链接&#xff1a;https://pan.baidu.com/s/1spxNUbH4trWBox1SJeBjkQ?pwdh…

Linux CentOS 系统安装

VMware 下载地址 Ctrl F 搜索【下载试用版】VMware 下载地址 Ctrl F 搜索【DOWNLOAD NOW】VMware-workstation-full-16.2.4-20089737.exe 文件下载地址CentOS 下载地址 Ubuntu 下载地址 阿里巴巴开源镜像站-OPSX镜像站 1、下载安装VMware虚拟机 2、下载Linux系统镜像&…

TCP/UDP/Socket 通俗讲解

1.封包和拆包 封包&#xff0c;就是发送数据前把自己本地需要发送的数据包装一下&#xff0c;即把要发送的原始数据附加上接受者可以辨识到自己身份等一些额外信息。有点像寄一封信&#xff0c;信封上填写的寄件人和收件人以及地址。 拆包&#xff0c;是接收到对方封包后发送来…

强化学习领域值得关注的国际顶级会议

导读&#xff1a; 强化学习&#xff08;Reinforcement Learning, RL&#xff09;&#xff0c;又称再励学习、评价学习或增强学习&#xff0c;是机器学习的范式和方法论之一&#xff0c;用于描述和解决智能体&#xff08;agent&#xff09;在与环境的交互过程中通过学习策略以达…

目标检测论文解读复现之十三:改进YOLOv5s的遥感图像目标检测

前言 此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

LeetCode 0799. 香槟塔

【LetMeFly】799.香槟塔 力扣题目链接&#xff1a;https://leetcode.cn/problems/champagne-tower/ 我们把玻璃杯摆成金字塔的形状&#xff0c;其中 第一层 有 1 个玻璃杯&#xff0c; 第二层 有 2 个&#xff0c;依次类推到第 100 层&#xff0c;每个玻璃杯 (250ml) 将盛有香…

几何算法——介绍

几何算法——介绍介绍1 关于几何引擎介绍2 关于模型的表达2.1 CSG (Constructive Solid Geometry )表示2.2 Brep (Boundary Representation)表示3 关于翼边结构和半边结构3.1 翼边结构3.2 半边结构4 关于边界表示法4.1 ACIS中的Brep表示很早之前就想写一些几何算法相关的文章&a…

一汽大众迈腾车前悬架系统设计

目 录 摘要 I Abstract II 第一章 绪论 1 1.1选题背景及意义 1 1.2国内外的研究现状 1 1.3本文的主要研究内容 3 第二章 悬架的结构分析与整体参数设计 4 2.1悬架系统的简介与分类 4 2.1.1悬架系统的简介 4 2.1.2悬架系统的分类 5 2.2独立悬架的特点 5 2.3整体参数的设计 6 2.3…

VM Tools安装过程

系列文章目录 VM Tools安装过程 VM Tools安装过程系列文章目录一、VM Tools安装步骤二、安装后无法使用问题解决办法之一一、VM Tools安装步骤 此时系统会弹出装载虚拟CD驱动器 点击打开文件 打开文件后可将 文件夹里的文件全部复制到自己的某个文件夹中&#xff0c;比如桌面 注…

延误件如何筛选 物流查询分享查询方法筛选延误三天以上物流件

当你拥有大量快递单号需要查询时&#xff0c;如何快速查询出每个单号的物流信息呢&#xff1f;分析物流更新是否及时&#xff0c;有没有延误&#xff0c;今天小编给大家分享一款软件批量查询物流&#xff0c;并且筛选出延误件&#xff0c;一起来看看吧&#xff01; 第一步&…

Linux进阶-编辑器

常用两个编辑器 gedit编辑器&#xff1a;依赖图形界面。 vi/vim编辑器&#xff1a;sudo apt install vim&#xff08;安装vim编辑器&#xff09; vim与vi的区别&#xff1a; vim是vi的升级版本&#xff0c;兼容vi&#xff1b; vi按u只能撤销上次命令&#xff0c;而在vim里…

QT之OpenGL摄像机

QT之OpenGL摄像机1. 概述1.1 摄像机创建2. 旋转(欧拉角)3. demo示例4. 参考1. 概述 OpenGL本身没有摄像机(Camera)的概念&#xff0c;但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机&#xff0c;产生一种我们在移动的感觉。 当我们讨论摄像机/观察空间…

OpenCV图像处理——(实战)信用卡识别

总目录 图像处理总目录←点击这里 十四、信用卡数字识别 识别的图片模板图片 14.1、模板图片处理 读入图片->灰度图->二值图->计算轮廓->存储每一个模板 如果是所需模板匹配只有一个&#xff0c;课直接读入灰度图像即可 这里有10个模板(0-9)&#xff0c;所以需…

学校教务管理系统的设计与实现--Word文档可在最后链接处下载,无code

一 设计背景 1.1 课题现状 国家经济水平逐渐的提升&#xff0c;各行各业发展也稳步向前&#xff0c;其业务也繁多起来。慢慢的对其管理需求也要求提高&#xff0c;因此很多行业临着新的困难和机遇&#xff0c;现如今要怎么利用利于对自身发展需要的而且适用的种种技术来提升自身…

【PID优化】基于正余弦算法 (SCA)优化PID实现微型机器人系统位置控制附simulink模型和matlab代码

​✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法…