【参考答案】java基础练习:集合-Map(HashMap)、Collections工具类
参考答案
班级有不同数量的学生,用map保存;循环取出学生信息
package com.qzcsbj.gift.test; import java.util.*; public class Test { public static void main(String[] args) { // 创建对象 Student s1 = new Student("tom", 3); Student s2 = new Student("jack", 3); Student s3 = new Student("liming", 3); // 创建HashMap对象 HashMap<String, ArrayList<Student>> stringArrayListHashMap = new HashMap<>(); // 创建班级 String cname1 = "贝儿班"; String cname2 = "苗苗班"; // 学生放入列表 ArrayList<Student> students1 = new ArrayList<>(); students1.add(s1); students1.add(s2); ArrayList<Student> students2 = new ArrayList<>(); students2.add(s3); // 列表放入班级 stringArrayListHashMap.put(cname1,students1); stringArrayListHashMap.put(cname2,students2); // 遍历方式一 Set<String> cname = stringArrayListHashMap.keySet(); for (String name:cname){ System.out.println("=======班级:"+name+"======="); ArrayList<Student> li = stringArrayListHashMap.get(name); for (Student s:li){ System.out.println(s); } } System.out.println("\n*************************************\n"); // 遍历方式二 Set<Map.Entry<String, ArrayList<Student>>> entries = stringArrayListHashMap.entrySet(); for(Map.Entry<String, ArrayList<Student>> entry:entries){ System.out.println("=======班级:"+entry.getKey()+"======="); ArrayList<Student> li =entry.getValue(); for (Student s:li){ System.out.println(s); } } } }
统计一个字符串中每个字符出现的次数,保存到HashMap集合中
package com.qzcsbj; import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { String str = "qzcsbj-*?>>>666"; Map<Character, Integer> map=new HashMap<Character, Integer>(); for(int i=0;i<str.length();i++){ char c = str.charAt(i); if(map.containsKey(c)){ map.put(c, map.get(c)+1); }else{ map.put(c, 1); } } System.out.println(map); } }
统计一个字符串中每个字符出现的次数,保存到HashMap集合中,通过排序,打印输出次数最多的前三个字符及次数
package com.qzcsbj; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Set; public class CcollectionsPractice { public static void main(String[] args) { String str = "qzcsbj-*?>>>666j"; Map<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < str.length(); i++) { String c = str.charAt(i) + ""; map.put(c, map.containsKey(c) ? map.get(c) + 1 : 1); } System.out.println(map); // 获取所有键值对的集合 Set<Map.Entry<String, Integer>> entries = map.entrySet(); ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(entries); // 自定义比较器,第二个参数是匿名内部类 Collections.sort(list,new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { if(o1.getValue()>o2.getValue()){ return -1; }else if(o1.getValue()<o2.getValue()){ return 1; } return 0; } }); System.out.println(list); System.out.println("出现次数最多的前三个字符及次数:"); for(int i=0;i<3;i++){ Map.Entry<String, Integer> entry = list.get(i); System.out.println(entry.getKey()+"="+entry.getValue()); } } }
【java百题计划汇总】
详见:https://www.cnblogs.com/uncleyong/p/15828510.html
原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/17043998.html
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!