遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

【参考答案】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

 

【bak】

原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/17043998.html

 

posted @ 2023-01-14 13:50  全栈测试笔记  阅读(133)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end