【日常开发】java中一个list对象集合 将字段a为 大豆 小麦 玉米等元素放在最前面 并组成新集合
| 🎈边走、边悟🎈迟早会好 |
在Java中实现这个功能,可以使用Stream来筛选出符合条件的元素,将它们放在新集合的前面,同时保留其他元素在新集合的后面。以下是如何实现的代码示例:
代码示例:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;class Crop {String a;int b;Crop(String a, int b) {this.a = a;this.b = b;}@Overridepublic String toString() {return "Crop{" + "a='" + a + '\'' + ", b=" + b + '}';}
}public class Main {public static void main(String[] args) {List<Crop> crops = new ArrayList<>();crops.add(new Crop("水稻", 100));crops.add(new Crop("玉米", 200));crops.add(new Crop("小麦", 300));crops.add(new Crop("大豆", 400));crops.add(new Crop("高粱", 500));List<String> priorityOrder = List.of("大豆", "小麦", "玉米");// 筛选出符合条件的对象并组成新集合的前部分List<Crop> priorityCrops = crops.stream().filter(crop -> priorityOrder.contains(crop.a)).sorted((c1, c2) -> {int index1 = priorityOrder.indexOf(c1.a);int index2 = priorityOrder.indexOf(c2.a);return Integer.compare(index1, index2);}).collect(Collectors.toList());// 筛选出不符合条件的对象并组成新集合的后部分List<Crop> otherCrops = crops.stream().filter(crop -> !priorityOrder.contains(crop.a)).collect(Collectors.toList());// 将两个集合合并成一个新集合List<Crop> newCrops = new ArrayList<>();newCrops.addAll(priorityCrops);newCrops.addAll(otherCrops);// 打印新集合for (Crop crop : newCrops) {System.out.println(crop);}}
}
代码解释:
Crop类:包含字段a和b,a是要筛选和排序的字段。priorityOrder:指定你要优先筛选和排序的字段值,如“大豆”、“小麦”、“玉米”。priorityCrops:使用Stream的filter方法筛选出a字段在priorityOrder中的对象,并根据priorityOrder中的顺序排序。otherCrops:筛选出不符合priorityOrder条件的对象。newCrops:将priorityCrops和otherCrops合并,形成一个新的集合。- 打印新集合:按顺序输出新集合的内容。
最终输出结果:
Crop{a='大豆', b=400}
Crop{a='小麦', b=300}
Crop{a='玉米', b=200}
Crop{a='水稻', b=100}
Crop{a='高粱', b=500}
新集合newCrops中,a字段为“大豆”、“小麦”、“玉米”的对象会排在前面,其他对象会排在后面。
🌟感谢支持 听忆.-CSDN博客
| 🎈众口难调🎈从心就好 |
相关文章:
【日常开发】java中一个list对象集合 将字段a为 大豆 小麦 玉米等元素放在最前面 并组成新集合
🎈边走、边悟🎈迟早会好 在Java中实现这个功能,可以使用Stream来筛选出符合条件的元素,将它们放在新集合的前面,同时保留其他元素在新集合的后面。以下是如何实现的代码示例: 代码示例: impo…...
C++ 设计模式——原型模式
原型模式 原型模式主要组成部分原型模式的使用步骤原型模式的 UML 图原型模式 UML 图解析优点和缺点适用场景总结 原型模式 原型(Prototype)模式是一种创建型模式。原型模式通过(原型对象)克隆出对个一模一样的对象。实际上,该模式与其说是一种设计模式,…...
【Harmony OS 4.0】待办列表案例
src/main/ets/example1/Models.ets // 定义class类数据模型 export class TaskDataModel {// private 私有属性,在类对象外不允许随意更改数据,必须本地初始化。private tasks: Array<string> [早起晨练, 准备早餐, 阅读名著, 学习ArkTs, 玩游戏…...
快速把文件名统计到excel表的方法
文件名统计到EXCEL表,这似乎很多人都没听说过,因为它与EXCEL表格不沾边,那么这个需求如何实现,用到什么方法,今天给大家介绍一个比较实用的方法,它可以把文件名或文件夹的名快速提取并统计到EXCEL表格上去。…...
开源通用验证码识别OCR —— DdddOcr 源码赏析(一)
文章目录 [toc] 前言DdddOcr环境准备安装DdddOcr使用示例 源码分析实例化DdddOcr实例化过程 分类识别分类识别过程 未完待续 前言 DdddOcr 源码赏析 DdddOcr DdddOcr是开源的通用验证码识别OCR 官方传送门 环境准备 安装DdddOcr pip install ddddocr使用示例 示例图片如…...
上升ECMAScript性能优化技巧与陷阱(下)
4. 深拷贝和浅拷贝的选择不当 在JavaScript中,对象是通过引用传递的,这意味着当你将一个对象赋值给另一个变量时,你实际上是在传递对象的引用,而不是对象本身。这导致了一个常见的问题:当你修改一个对象的属性时&…...
用7EPhone云手机进行TikTok的矩阵运营
“根据市局机构Statista发布的报告显示,截至2024年4月,TikTok全球下载量超过49.2亿次,月度活跃用户数超过15.82亿。TikTok的流量受欢迎程度可想而知,也一跃成为了全球第五大最受欢迎的社交APP。” 人群密集的地方社区也是适合推广…...
谷歌浏览器下载文件被阻止怎么解除
在工作生活中,我们会使用谷歌浏览器下载各种各样的文件,不过偶尔会遇到文件下载被阻止的情况。为了解决这一问题,本文为大家分享了实用的措施建议,一起来了解一下吧。(本文由https://chrome.cmrrs.com/站点的作者进行编…...
apt E: 无法定位软件包 winehq-stable
执行了 添加wine源 wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources还需要执行 更新源 apt update...
P2460[SDOI2007] 科比的比赛
第一次做洛谷系列,紧张,请多关照哦 题目传送门:[SDOI2007] 科比的比赛 - 洛谷 思路分析 这道题大概题意是给定我们的主人公 Kobe Bryant 的 mm 个对手,nn 场比赛相对应的获胜概率。求 Kobe Bryant 最大全部获胜概率和打败对手能…...
linux学习--第二天
--Linux文件系统 -显示文件命令 cat 1. cat -b 文件:从1开始对非空输出行编号 2. cat -n 文件:从1开始对所有行编号 3. cat -s 文件:将连续多行空白行合并 more(显示一屏文本内容) 1. more -num 文件ÿ…...
使用 Flask、Celery 和 Python 实现每月定时任务
为了创建一个使用 Flask、Celery 和 Python 实现的每月定时任务,我们需要按照以下步骤进行: 1.安装必要的库 我们需要安装 Flask、Celery 和 Redis(作为消息代理)。我们可以使用 pip 来安装它们: bash复制代码 p…...
【c语言】整数在内存中的储存(大小端字节序)
整数在内存中的储存(大小端字节序) 1.整数在内存中的储存 2.大小端字节序 3.整数在内存中储存例子 4.字节序判断 5.死循环现象 文章目录 整数在内存中的储存(大小端字节序)整数在内存中的储存大小端字节序什么是大小端为什么会有…...
浅谈SIMD、向量化处理及其在StarRocks中的应用
前言 单指令流多数据流(SIMD)及其衍生出来的向量化处理技术已经有了相当的历史,并且也是高性能数据库、计算引擎、多媒体库等组件的标配利器。笔者在两年多前曾经做过一次有关该主题的内部Geek分享,但可能是由于这个topic离实际研发场景比较远࿰…...
【ML】Image Augmentation)的作用、使用方法及其分类
图像增强(Image Augmentation)的作用、使用方法及其分类 1. 图像增强的定义2. 图像增强的作用3. 什么时候使用图像增强?4. 图像增强详细方法分类梳理4.1 图像增强方法列表4.2 边界框增强方法5. 参考资料 yolov3(一:模型…...
设计模式六大原则(一)--单一职责原则
1. 简介 1.1. 概述 一个类或模块应该只负责完成一项任务或承担一个责任。如果一个类或模块承担了多个职责,那么当需要修改其中一个职责的功能时,就可能会对其他职责产生影响,从而导致代码耦合度增加,维护起来更加困难。 1.2. 主要特点 单一职责原则(Single Responsibi…...
c语言学习,malloc()函数分析
1:malloc() 函数说明: 申请配置size大小内存空间 2:函数原型: void *malloc(size_t size) 3:函数参数: 参数size,为申请内存大小 4:返回值: 配置成功则返回指针&#…...
【运维项目经历|041】上云项目-物理机迁移到阿里云
🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专家博主 💊交流社区:CSDN云计算交流社区欢迎您的加入! 目录 项目名称 项目背景 项目目标 项…...
分组并合并其它列的非空值 --Excel难题#83
Excel第1列是分类,第2-42列是平行的多个数据项列,下表用部分列示例。数据有X或null两种情况,同一个分类的同一列数据偶尔有重复。 ABCDE1IDCriteria1Criteria2Criteria3Criteria42FirstValueX3FirstValueX4FirstValueX5FirstValueX6SecondVa…...
VM相关配置及docker
NAT——VMnet8网卡 桥接——WLAN/网线 仅主机——VMnet1网卡 docker与虚拟机的区别 启动docker服务 systemctl start docker 重启 systemctl start docker关闭docker服务 systemctl stop docker.servicedocker的两大概念 镜像:images,应用程序的静态文…...
MSP430 FRAM技术解析与嵌入式存储优化实践
1. MSP430 MCU存储技术迁移背景在嵌入式系统设计中,微控制器(MCU)的非易失性存储技术选择直接影响产品性能和开发效率。传统Flash存储器虽然成本低廉,但其写入速度慢(需先擦除后写入)、功耗高(需要电荷泵)和…...
如何3分钟精准定位Windows热键冲突:Hotkey Detective深度技术解析
如何3分钟精准定位Windows热键冲突:Hotkey Detective深度技术解析 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...
77种商品-图像分类数据集
77种商品图像分类数据集 数据集(文章最后关注公众号获取数据集): 链接: https://pan.baidu.com/s/1Xcj5Z-RSUjGH47OIbH5wjQ?pwd=fq2p 提取码: fq2p 数据集信息介绍: 以下是整理后的清晰呈现,按照商品名称首字母顺序进行排列: 东方树叶红茶:文件夹中的图片数量为 150 …...
ARM活动监控器(AMU)架构与AMCFGR寄存器详解
1. ARM活动监控器架构概览 在现代处理器设计中,性能监控单元(PMU)是系统调优和性能分析的关键组件。ARM架构中的活动监控器(Activity Monitors)作为PMU的核心部分,通过硬件计数器实现了对处理器行为的细粒度追踪。不同于传统的性能计数器,AMU…...
开源AI智能体技能库:模块化设计赋能AI应用开发
1. 项目概述:一个开源的AI智能体技能库最近在GitHub上闲逛,发现了一个挺有意思的项目,叫free-ai-agent-skills。光看名字,你可能会觉得这又是一个堆砌各种AI工具调用的代码仓库。但点进去仔细研究后,我发现它的定位和设…...
Beige CSS框架:现代CSS Grid与变量驱动的极简前端开发实践
1. 项目概述:一个被低估的现代CSS框架如果你和我一样,在过去的几年里,已经厌倦了Bootstrap、Tailwind CSS这些“巨无霸”框架带来的审美疲劳和项目同质化,同时又对从零开始手写CSS的繁琐感到头疼,那么今天聊的这个项目…...
Kleiber:简化多架构Docker镜像构建与发布的自动化工具
1. 项目概述与核心价值最近在整理自己的开发工具链时,又翻出了devgap/kleiber这个项目,它在我日常的容器化开发工作流中扮演了一个相当关键但又不那么起眼的角色。简单来说,Kleiber 是一个 Docker 镜像的构建和发布自动化工具,但它…...
大模型低显存优化实战:量化、KV Cache与动态加载技术解析
1. 项目概述:低显存环境下的OpenClaw模型优化实战最近在GitHub上看到一个挺有意思的项目,标题是“openclaw-lowmem-optimization”。光看名字,就能猜到这大概是在做一件什么事:针对OpenClaw这个模型,进行低显存&#x…...
如何让GPT-3开口说话?揭秘微调技巧,打造你的专属AI模型!
本文详细介绍了微调技术在AI模型中的应用,通过将通用模型如GPT-3进行微调,可以使其适应特定任务,如ChatGPT或GitHub Copilot。微调与普通提示词工程最大的区别在于,它能真正让模型学会数据,而非仅仅是“看到”数据。文…...
全志T113-S3 SPI屏幕驱动踩坑实录:内核5.4下适配ILI9341的完整流程与代码修改
全志T113-S3 SPI屏幕驱动深度解析:内核5.4适配ILI9341的实战指南 在嵌入式开发领域,显示设备的驱动适配一直是工程师面临的核心挑战之一。全志T113-S3作为一款性价比突出的处理器,广泛应用于各类嵌入式场景,而ILI9341驱动的SPI屏幕…...
