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…

HarmonyOS ArkTS 三方库的基本使用(十六)

如何获取三方库 目前提供了两种途径获取开源三方库&#xff1a; 1、通过访问Gitee网站开源社区获取 在Gitee中&#xff0c;搜索OpenHarmony-TPC仓库&#xff0c;在tpc_resource中对三方库进行了资源汇总&#xff0c;可以供开发者参考。 2、通过OpenHarmony三方库中心仓获取 …

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

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

C语言习题集(035)

//有n个人围成一圈&#xff0c;顺序排号。从第1个人开始报 //数&#xff08;从1到3报数&#xff09;&#xff0c;凡报到3的人退出圈子&#xff0c;问 //最后留下的是原来第几号的那位。 /* */ //解答&#xff1a; #include<stdio.h> int main() { int a[10000],n,i,k0,…

谈谈我的三次考研经历

阿七经历过三次考研。 第一次&#xff0c;大四毕业那年&#xff0c;大三开始有紧迫感&#xff0c;因为大学几年什么也没学会&#xff0c;毕业考试成绩从第二个学期开始就一路下滑&#xff0c;每次都是考前一周突击&#xff0c;最后擦着及格线通过。 大三就开始和几个同学组队…

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;每条线…

【复现】DiffTalk

code&#xff1a;GitHub - sstzal/DiffTalk: [CVPR2023] The implementation for "DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation" 问题1. ERROR: Failed building wheel for pysptk Cython.Compiler.Errors.CompileError:…

Beauty algorithm(三)腮红

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

python属性管理getattr、getattribute、setattr和delattr避免循环

1 python属性管理getattr、getattribute、setattr和delattr避免循环 在__getattr__()、__getattribute__()和__setattr__()方法体内&#xff0c;通过self进行对应的点号运算、赋值运算&#xff0c;会自动调用当前实例的相应方法&#xff0c;导致无限循环。通过object或者__dic…

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

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

MyBatis-Plus实现自定义SQL语句的分页查询

正常开发的时候&#xff0c;有时候要写一个多表查询&#xff0c;然后多表查询之后还需要分页&#xff0c;MyBatis-Plus的分页插件功能挺不错的&#xff0c;可以很简单实现自定义SQL的分页查询。 分页插件配置 import com.baomidou.mybatisplus.annotation.DbType; import com…

深度解析Webpack:现代前端工程化的利器

引言&#xff1a; 前端工程化是当今前端开发的不可或缺的一部分&#xff0c;而Webpack作为其中的瑞士军刀&#xff0c;在项目构建和优化中扮演着至关重要的角色。本文将深度解析Webpack&#xff0c;从基础概念到实际应用&#xff0c;为前端开发者提供全面的学习指南&#xff0…

MyBatis自定义类型处理器 TypeHandler(通俗易懂,效率起飞),处理jsonb、数组、枚举类型。支持MybatisPlus

一 使用场景 在项目开发过程中&#xff0c;我们经常遇到这样的情况&#xff1a;Java 对象中的数据类型与数据库中的字段类型不一致。这时&#xff0c;我们需要在保存数据到数据库和从数据库检索数据时进行类型转换。例如&#xff1a; 对于一些数据库特有的数据类型&#xff0…

Go语言并发模式视角思考

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