java中list,map习题

📑前言

本文主要是【java】——java中list,map习题的文章,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:CSDN主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见

目录

    • 📑前言
    • 1.map对value排序问题
    • 2.对list中出现的字符串进行计数并存放在map中
    • 3.将list中的数字字符串和字母字符串分割开
    • 4.map计算成绩
    • 5.遍历list中数据,姓名、邮箱采用键值对方式存入map
    • 📑文章末尾

1.map对value排序问题

  • map中存放着许多姓名:年龄等键值对数据,如{张三:2,李四:3}等数据,取出年龄最大的三个数据并输出
  • 注意点:存放数据时,要使用有序的map,如linkedHashMap等数据结构
package test;import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;public class test1 {public static void main(String[] args) {// TODO Auto-generated method stubMap<String, Integer> map = new HashMap<>();map.put("zhangsan", 3);map.put("lisi", 1);map.put("wangwu", 2);map.put("zhaoliu", 4);map.put("xiha", 5);Map<String, Integer> ans = sortMap(map);int i=3;Iterator<Entry<String, Integer>> entries =	ans.entrySet().iterator();while(i-->0) {Entry<String, Integer> entry = entries.next();System.out.println(entry.getKey()+":"+entry.getValue());}}public static Map<String, Integer> sortMap(Map<String, Integer> map){//利用Map的entrySet方法,转化为list进行排序List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() {@Overridepublic int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {// TODO Auto-generated method stubreturn o2.getValue()-o1.getValue();}});//排序好的list,一定要放进LinkedHashMap,因为只有LinkedHashMap是根据插入顺序进行存储LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>();for(Map.Entry<String, Integer> e:entries) {linkedHashMap.put(e.getKey(), e.getValue());}return linkedHashMap;}}

2.对list中出现的字符串进行计数并存放在map中

  • list中存在许多字符串,对它们进行计数,并存放在map中
  • 注意点:存放数据时,要使用有序的map,如linkedHashMap等数据结构
package test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;public class test2 {public static void main(String[] args) {// TODO Auto-generated method stubList<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("apple");list.add("orange");list.add("banana");list.add("grape");list.add("grape");Map<String, Integer> map = f(list);System.out.println(map);Iterator<Entry<String, Integer>> entries =	map.entrySet().iterator();while(entries.hasNext()) {Entry<String, Integer> entry = entries.next();System.out.println(entry.getKey()+":"+entry.getValue()+" ");}}public static Map<String, Integer> f(List<String> list){//注意hashmap是无序的,linkedHashMap是有序的。Map<String, Integer> map = new LinkedHashMap<>();for(String i:list) {map.put(i, map.containsKey(i)?map.get(i)+1:1);}return map;}}

3.将list中的数字字符串和字母字符串分割开

  • list中有许多字符串,请你将数字字符串和字母字符串分割开
  • 思路:根据数字和字母的acsll不同来进行区分
package test;import java.util.ArrayList;
import java.util.List;public class test3 {public static void main(String[] args) {// TODO Auto-generated method stubList<String> list = new ArrayList<>();list.add("123");list.add("abc");list.add("456");list.add("def");list.add("789");list.add("ghi");List<String> list1 = new ArrayList<>();List<String> list2 = new ArrayList<>();for(String i:list) {if(i.charAt(0)>=97&&i.charAt(0)<=122) {list2.add(i);}else {list1.add(i);}}System.out.println("数字列表:"+list1+",字母列表:"+list2);}}

4.map计算成绩

  • 在map中存放着许多同学的名字和成绩,请你计算同学们语数英三门成绩的平均分
package test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;public class test4 {public static void main(String[] args) {// TODO Auto-generated method stubMap<String, List<Integer>> map = new LinkedHashMap<>();List<Integer> list1 = new ArrayList<>();list1.add(85);list1.add(90);list1.add(95);List<Integer> list2 = new ArrayList<>();list2.add(80);list2.add(85);list2.add(90);List<Integer> list3 = new ArrayList<>();list3.add(95);list3.add(100);list3.add(105);map.put("John", list1);map.put("Bob", list2);map.put("Alice", list3);Map<String, Double> map1 = f(map);for(String key:map1.keySet()) {System.out.println(key+":"+map1.get(key));}}public static Map<String, Double> f(Map<String, List<Integer>> map){Map<String, Double> map1 = new LinkedHashMap<>();Set<String> set=map.keySet();for(String i:set) {double avg=(double)(map.get(i).get(0)+map.get(i).get(1)+map.get(i).get(2))/3;map1.put(i, avg);}return map1;}}

5.遍历list中数据,姓名、邮箱采用键值对方式存入map

package test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;public class test5 {public static void main(String[] args) {// TODO Auto-generated method stubList<String> list = new ArrayList<>();list.add("John");list.add("john@qq.com");list.add("Alice");list.add("alice@qq.com");list.add("Bob");list.add("Bob@qq.com");Map<String, String> map=f(list);System.out.println(map);Set<String> set=map.keySet();for(String i:set) {System.out.println(i+":"+map.get(i));}}public static Map<String, String> f(List<String> list){Map<String, String> map = new LinkedHashMap<>();for(int i=0;i<list.size();i=i+2) {map.put(list.get(i), list.get(i+1));}return map;}
}

📑文章末尾

在这里插入图片描述

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

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

相关文章

dubbo的基础知识

dubbo是什么 Dubbo是一个分布式服务框架&#xff0c;是一种高性能的远程通讯框架。它提供了基于Java的RPC&#xff08;远程过程调用&#xff09;通信机制&#xff0c;使得应用之间可以方便地进行远程调用&#xff0c;实现分布式服务的调用和管理。Dubbo提供了服务注册、发现、负…

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-https://blog.csdn.net/alex_starsky/category_12467518.html 如何使用大模型查询助手功能&#xff1f;例如调用工具实现网络查询助手功能。目前只有 ChatGLM3-6B 模型支持工具调用&#xff0c;而 ChatGLM3-6B-Base 和 ChatGLM3-6B-32K 模型不支持。 定义好工具的…

【Java集合篇】负载因子和容量的关系

负载因子和容量有什么关系 ✔️典型解析✔️loadfactor为啥默认是0.75F&#xff0c;不是1呢?✔️为什么HashMap的默认负载因子设置成0.75✔️0.75的数学依据是什么✔️0.75的必然因素 ✔️HashMap的初始值设为多少合适? ✔️典型解析 HashMap 中有几个属性&#xff0c;如 cap…

【已解决】js定义对象属性是.如何访问

当变量没有length属性的时候&#xff0c;可能是个对象变量&#xff0c;当有键值对的时候就可能是个对象&#xff0c;读者都知道的是&#xff0c;用typeof(变量)可以查看属性&#xff0c;今天本文解决的问题是如果js定义对象中属性是"点"如何访问 问题再现 var a {…

iPhone 恢复出厂设置后如何恢复数据

如果您在 iPhone 上执行了恢复出厂设置&#xff0c;您会发现所有旧数据都被清除了。这对于清理混乱和提高设备性能非常有用&#xff0c;但如果您忘记保存重要文件&#xff0c;那就是坏消息了。 恢复出厂设置后可以恢复数据吗&#xff1f;是的&#xff01;幸运的是&#xff0c;…

第13课 利用openCV检测物体是否运动了

FFmpeg与openCV绝对是绝配。前面我们已经基本熟悉了FFmpeg的工作流程&#xff0c;这一章我们重点来看看openCV。 在前面&#xff0c;我们已经使用openCV打开过摄像头并在MFC中显示图像&#xff0c;但openCV能做的要远超你的想像&#xff0c;比如可以用它来实现人脸检测、车牌识…

基于平衡优化器算法优化的Elman神经网络数据预测 - 附代码

基于平衡优化器算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于平衡优化器算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于平衡优化器优化的Elman网络5.测试结果6.参考文献7.Matlab代码…

vivado xsim 终端 模拟

只模拟的话直接终端运行会快很多 计数器举例 mkdir srccounter.v module counter(input wire clk,input wire rst_n,output reg[31:0] cnt ); always (posedge clk or negedge rst_n)if(!rst_n)cnt < 31h0;elsecnt < cnt1;endmodule tb.v module tb; wire[31:0] out…

【大厂秘籍】系列 - Java多线程面试题

Java多线程面试题 友情提示&#xff0c;看完此文&#xff0c;在Java多线程这块&#xff0c;基本上可以吊打面试官了 线程和进程的区别 进程是资源分配的最小单位&#xff0c;线程是CPU调度的最小单位 线程是进程的子集&#xff0c;一个进程可以有很多线程&#xff0c;每条线…

Beauty algorithm(三)腮红

查阅资料了解到腮红位于苹果肌处,同样使用关键点确定目标区域,然后对该区域进行渲染达到美妆效果。考虑到如果使用简单的RGB是很难做到特效,本篇采用模板方式进行区域融合。 一、skills 前瞻 1、png图像读取 cv::imread(imgPath, cv::IMREAD_UNCHANGED) IMREAD_UNCHANGE…

小红书 X WSDM 2024「对话式多文档问答挑战赛」火热开赛!

基于大语言模型&#xff08;LLM&#xff09;的对话问答机器人&#xff0c;已经成为当前人工智能领域学术界和工业界共同关注的的热门研究方向之一。在对话过程中&#xff0c;为大模型引入搜索结果&#xff0c;进行检索增强的生成&#xff08;Retrieval Augmented Generation&am…

Go语言并发模式视角思考

犹记得2019年中旬进行知识点的学习和demo的练习&#xff0c;熟悉各种语法和并发调度的场景&#xff0c; 在2019年末开始参与项目实战开发和逻辑梳理 Go语言的接触也是更多探索和业务的拆件&#xff0c;做一些雏形工具&#xff0c;来慢慢的孵化业务生态 后来陆陆续续&#xff…

时间序列预测 — LSTM实现多变量多步负荷预测(Tensorflow):多输入多输出

目录 1 数据处理 1.1 导入库文件 1.2 导入数据集 ​1.3 缺失值分析 2 构造训练数据 3 LSTM模型训练 4 LSTM模型预测 4.1 分量预测 4.2 可视化 1 数据处理 1.1 导入库文件 import time import datetime import pandas as pd import numpy as np import matplotlib.p…

软件测试|教你如何使用UPDATE修改数据

简介 在SQL&#xff08;Structured Query Language&#xff09;中&#xff0c;UPDATE语句用于修改数据库表中的数据。通过UPDATE语句&#xff0c;我们可以更新表中的特定记录或多条记录&#xff0c;从而实现数据的修改和更新。本文将详细介绍SQL UPDATE语句的语法、用法以及一…

【AI视野·今日Robot 机器人论文速览 第六十七期】Mon, 1 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Mon, 1 Jan 2024 Totally 16 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers MURP: Multi-Agent Ultra-Wideband Relative Pose Estimation with Constrained Communications in 3D Environments Authors A…

【高效视频处理】BMF 项目安装与老视频修复体验全流程及总结

一、BMF简介 BMF&#xff08;Babit Multimedia Framework&#xff09;是字节跳动开发的跨平台、多语言、可定制的多媒体处理框架。经过 4 年多的测试和改进&#xff0c;BMF 已经过量身定制&#xff0c;能够熟练地应对我们现实生产环境中的挑战。目前广泛应用于字节跳动的视频串…

主流大语言模型从预训练到微调的技术原理

引言 本文设计的内容主要包含以下几个方面&#xff1a; 比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节&#xff1a;tokenizer、位置编码、Layer Normalization、激活函数等。大语言模型的分布式训练技术&#xff1a;数据并行、张量模型并行、流水线并行、3D 并行、零冗余优…

机器学习--回归算法

&#x1f333;&#x1f333;&#x1f333;小谈&#xff1a;一直想整理机器学习的相关笔记&#xff0c;但是一直在推脱&#xff0c;今天发现知识快忘却了&#xff08;虽然学的也不是那么深&#xff09;&#xff0c;但还是浅浅整理一下吧&#xff0c;便于以后重新学习。 &#x1…

IOS:Safari无法播放MP4(H.264编码)

一、问题描述 MP4使用H.264编码通常具有良好的兼容性&#xff0c;因为H.264是一种广泛支持的视频编码标准。它可以在许多设备和平台上播放&#xff0c;包括电脑、移动设备和流媒体设备。 使用caniuse查询H.264兼容性&#xff0c;看似确实具有良好的兼容性&#xff1a; 然而…

【响应式编程-05】Lambda方法引用

一、简要描述 Lambda的方法引用也叫引用方法 方法引用初体验方法引用的底层实现方法引用的语法格式方法引用举例 静态方法引用构造方法引用普通方法引用super和this方法引用数组的方法引用 二、方法引用初体验 为什么出现方法引用&#xff1f; 引用已存在方法&#xff0c;避免重…