Java基礎-stream流的使用

目錄

案例要求:

實現思路:

代碼:

總結:


案例要求:

實現思路:

創建一個包含學生姓名(String)和選擇地址變量(集合)的實體類,然后將題干數據封裝到集合,然后進行stream操作

代碼:

import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;//TIP 要<b>運行</b>代碼,請按 <shortcut actionId="Run"/> 或
// 點擊裝訂區域中的 <icon src="AllIcons.Actions.Execute"/> 圖標。
public class Main {static Scanner sc = new Scanner(System.in);public static void main(String[] args) {List<Student> students = new ArrayList<>();students.add(new Student("張全蛋兒", List.of("農家樂", "野外拓展")));students.add(new Student("李二狗子", List.of("轟趴", "野外拓展", "健身房")));students.add(new Student("翠花", List.of("野外拓展")));students.add(new Student("小帥", List.of("轟趴", "健身房")));students.add(new Student("有容", List.of("農家樂")));// 1. 統計每個去處的人數并找出投票最多的去處Map<String, Integer> placeCountMap = new HashMap<>();students.forEach(student -> student.getChoices().forEach(choice -> {placeCountMap.put(choice, placeCountMap.getOrDefault(choice, 0) + 1);}));String mostPopularPlace = placeCountMap.entrySet().stream().max(Map.Entry.comparingByValue()).map(Map.Entry::getKey).orElse(null);System.out.println("每個去處的人數:");placeCountMap.forEach((place, count) -> System.out.println(place + ":" + count));System.out.println("投票最多的去處是:" + mostPopularPlace);// 2. 找出沒有選擇投票最多去處的學生List<String> studentsWithoutMostPopular = students.stream().filter(student ->!student.getChoices().contains(mostPopularPlace)).map(Student::getName).collect(Collectors.toList());System.out.println("沒有選擇投票最多去處的學生:" + studentsWithoutMostPopular);}
}


總結:

這篇文章展示了一個簡單的Java程序,用于統計學生選擇的去處情況。程序首先創建了5個學生對象及其選擇的活動去處,然后:1)統計每個去處的人數并找出投票最多的去處;2)找出沒有選擇最受歡迎去處的學生名單。程序使用了集合操作和流處理來實現統計功能,最終輸出每個去處的人數統計、最受歡迎去處以及未選擇該去處的學生名單。這個案例演示了如何使用Java集合框架進行基本的數據分析和處理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/91962.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91962.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91962.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

virtualbox+UBuntu20.04+內存磁盤擴容

寫在前面&#xff1a;1.由于我寫博客都是偏向個人筆記性質的&#xff0c;所以寫的比較粗糙&#xff0c;如果有疑問私信評論我即可。2.這篇博客的解決方法應該算是“全網”首發吧&#xff0c;因為我為了磁盤擴容真的找了好多相關資料&#xff0c;但是基本都沒有用。如果你也是找…

關于對Spring的理解,以及對spring中的兩大核心概念AOP和IOC的理解

我們先來說一說Spring&#xff0c;從總體上Spring就是一個基礎框架&#xff0c;同時Spring給我們提供了一個Bean容器&#xff0c;用來裝載和管理具體的Bean對象&#xff0c;你像我們之前創建對象的時候就是通過new關鍵字來實現的&#xff0c;但是現在我們只需要告訴容器有哪些對…

Next Terminal 實戰:內網無密碼安全登錄

本文首發于 Anyeの小站&#xff0c;點擊閱讀原文體驗更加。 前言 在日常的 HomeLab 或小型私有云環境中&#xff0c;我們常常通過反向代理&#xff08;如 Nginx、Caddy 等&#xff09;將內網服務暴露到公網&#xff0c;方便遠程訪問。然而&#xff0c;一旦端口映射開啟、公網…

WebSocket斷線重連機制:保障實時通信的高可用性

一、為什么需要斷線重連&#xff1f;WebSocket雖提供全雙工通信能力&#xff0c;但實際環境中連接穩定性受多重威脅&#xff1a;??網絡層波動??&#xff1a;Wi-Fi切換、4G/5G信號抖動&#xff08;觸發onclose事件&#xff09;??服務端異常??&#xff1a;服務器宕機、主…

低空三維多物理場耦合風洞試驗,保證飛行器的性能安全是低空飛行的底線,是低空經濟發展的基礎

風墻\風矩陣開發背景&#xff1a;2024年被稱為中國低空經濟產業發展元年&#xff0c;國家發改委提出“無安全、不低空”原則&#xff0c;要求低空經濟產業在技術研發、適航認證、運營管理各環節優先保障安全。目前無人機及其他低空飛行器技術已深度融入軍事、民用與工業領域&am…

中文基于Qwen3-235B-2507蒸餾數據集的操作

中文基于Qwen3-235B-2507蒸餾數據集的操作 flyfish 方式1 from datasets import load_dataset from transformers import AutoTokenizer# -------------------------- 配置參數 -------------------------- TOKENIZER_PATH "/media/models/models/Qwen/Qwen3-8B/" #…

論文閱讀筆記:《Dataset Distillation by Matching Training Trajectories》

論文閱讀筆記&#xff1a;《Dataset Distillation by Matching Training Trajectories》1.動機與背景2.核心方法&#xff1a;軌跡匹配&#xff08;Trajectory Matching&#xff09;3.實驗與效果4.個人思考與啟發主體代碼算法邏輯總結一句話總結&#xff1a; 這篇論文通過讓合成…

STM32標準庫的工程創建

一.所需文件說明 1.啟動文件startup_xxxx.s 作用&#xff1a;初始化堆棧指針、復位向量、中斷向量表&#xff0c;執行 SystemInit() 后跳轉到 main()。 位置&#xff1a;Libraries/CMSIS/Device/ST/STM32Fxx/Source/Templates/arm/ 文件名&#xff1a; startup_stm32f10x_l…

k8s ceph sc 設置文件系統格式化參數

前言 默認的 sc 文件系統 inode 太少,對于小文件場景,往往會出現容量沒滿,inode 已經用盡的情況,本文說明如何設置 inode。 說明 本文使用的是 rook-ceph 部署的 ceph 作為存儲后端。 xfs 文件系統 sc 創建帶格式化參數的 xfs 文件系統的 sc allowVolumeExpansion: t…

關于Npm和Nvm的用法

npm是個什么東西 npm是什么 node package managernodejs包管理工具處理復雜的包的管理的問題那么使用npm以后就不需要從前端引入相應的代碼和文件等。 npm相關的命令 查看版本npm -v 更新npm install npm5.4.0 更新到最新版本npm install npmlatest 初始化項目 npm ini…

MyBatis高效查詢:簡化JDBC開發實戰

Mybatis MyBatis 是一款優秀持久層(DAO)框架&#xff0c;用于簡化 JDBC 開發 &#xff0c;原是 Apache 開源項目 iBatis&#xff0c;經歷遷移改名&#xff0c;2010 年從 Apache 遷到 Google Code 并改名&#xff0c;2013 年 11 月遷至 GitHub&#xff0c;官網為 https://mybati…

系統信息及進程管理命令

系統信息及進程管理 一、系統信息查看 常用命令&#xff1a;uname、hostnam、hostnamectl、uptime、df、du、free、lscpu 1、uname (1)、命令簡介 uname 是一個在 Unix 和類 Unix 系統&#xff08;如 Linux、macOS&#xff09;中常用的命令行工具&#xff0c;用于顯示系統信息。…

【Z字形變換】

代碼思路分析&#xff1a;Z 字形變換 1. 邊界情況處理 if (r 1 || r > n) return s;r 1&#xff1a;只有一行&#xff0c;直接返回原字符串&#xff08;無需變換&#xff09;。r > n&#xff1a;行數大于等于字符串長度&#xff0c;每行只有一個字符&#xff0c;直接返…

VBA中類的解讀及應用第二十五講:把源數據賦給類利用類完成查找

《VBA中類的解讀及應用》教程【10165646】是我推出的第五套教程&#xff0c;目前已經是第一版修訂了。這套教程定位于最高級&#xff0c;是學完初級&#xff0c;中級后的教程。類&#xff0c;是非常抽象的&#xff0c;更具研究的價值。隨著我們學習、應用VBA的深入&#xff0c;…

Vue3核心語法進階(Hook)

Vue3 自定義 Hook&#xff1a;讓你的代碼像樂高一樣“可復用”&#xff01;大家好&#xff0c;我是你們的前端小伙伴&#xff01;上一篇我們聊了 Vue3 的生命周期&#xff0c;今天咱們繼續深入 Vue3 的核心利器——自定義 Hook&#xff08;Custom Hook&#xff09;。如果你已經…

工控領域協議之Modbus

Modbus 是一種通信協議&#xff0c;用于工業自動化領域中的設備之間的通信。它是一種串行通信協議&#xff0c;廣泛應用于連接不同設備、傳感器和執行器的工業控制系統。 Modbus 在工業控制系統、自動化設備、能源管理系統等領域得到廣泛應用。 Modbus 協議的基本特點&#xff…

大件垃圾識別 mAP↑28%:陌訊多模態融合算法實戰解析

一、行業痛點&#xff1a;大件垃圾識別的現實困境在城市環衛智能化轉型過程中&#xff0c;大件垃圾&#xff08;如廢舊家具、電器等&#xff09;的自動化識別與分揀成為關鍵環節。據住建部《城市環境衛生發展報告》顯示&#xff0c;傳統人工分揀模式下大件垃圾識別準確率不足 6…

vk框架或者普通函數封裝的一些函數可以拿取使用【會持續更新】

1.身份證校驗【通用】/*** function isIDCard* description 判斷是否為有效的身份證號碼。* param {string} idCard - 待驗證的身份證號碼。* returns {boolean} 返回驗證結果。*/ pubFun.isIDCard function (idCard) {// 身份證號碼為15位或者18位&#xff0c;15位時全為數字…

如何給Word和WPS文檔添加密碼或取消密碼

要保護Word和WPS文檔&#xff0c;可以為它們加密&#xff0c;加密有兩類&#xff1a;打開密碼和修改密碼。密碼設置有兩個入口&#xff0c;一個是在另存為&#xff0c;一個是在文件菜單。Word和WPS文字的路徑略有不同&#xff0c;微軟Office和WPS的其他套件也是如此操作。一、W…

uni-app項目gitignore文件示例

uni-app 忽略以下文件和目錄 DS_Store 忽略 UniApp 編譯生成的小程序相關目錄 unpackage/ uni_modules/ 忽略編輯器自動生成的文件 idea/ vscode/ 忽略日志文件 logs/ 忽略臨時文件 temp/ 忽略構建工具自動生成的文件 build/ 忽略 npm 安裝的包文件 package-lock.json yarn.loc…