Java案例之HashMap集合存储学生对象并遍历

一、需求:创建一个HashMap集合,键是学号(String),值是学生对象(Student),存储三个键值对元素,并遍历

分析:

  • 1.定义学生类
  • 2.创建HashMap集合对象
  • 3.创建学生对象
  • 4把学生添加到集合中
  • 5.遍历集合
public class StudentDemo {
    public static void main(String[] args) {
        //创建Map集合对象
        Map<String,Student> m=new HashMap<String,Student>();
        //添加键值对
        m.put("01",new Student("张三"));
        m.put("04",new Student("赵六"));
        m.put("02",new Student("李四"));
        m.put("03",new Student("王五"));
        //遍历集合
        Set<Map.Entry<String,Student>> s= m.entrySet();
        //遍历
        for (Map.Entry<String,Student> ss:s){
            //根据键值对对象获取值和key
            String key=ss.getKey();
           Student value=ss.getValue();
            System.out.println(key+","+value.getName());
        }
        System.out.println("------------------------");
        //方式二,通过键找值
        Set<String> m1=m.keySet();
        for (String key :m1){
             Student student =m.get(key);
            System.out.println(key+","+student.getName());
        }
    }
}

二、需求:创建一个HashMap集合,键是学生对象(Student),值是地址(String),存储三个键值对元素,并遍历分析:

  • 1.定义学生类
  • 2.创建HashMap集合对象
  • 3.创建学生对象,并把学生对象当作键值添加到集合
  • 4把地址字符串添加到集合中
  • 5.为了保证数据的唯一性,需要在学生类中重写hashCodeequals方法
  • 6.遍历集合
public class StudentDemo {
    public static void main(String[] args) {
        //创建集合对象
        Map<Student,String> m=new HashMap<Student,String>();
        //添加键值对
        m.put(new Student("张三",18),"上海");
        m.put(new Student("李四",19),"北京");
        m.put(new Student("王五",20),"上海");
        m.put(new Student("王五",20),"海南");
        //方式一
        //获取所有键值对的集合
        Set<Map.Entry<Student,String>> s=m.entrySet();
        //方式一、遍历
        for (Map.Entry<Student,String> mm:s){
            //通过键值对获取对应的值与键
            Student key=mm.getKey();
            String value=mm.getValue();
            System.out.println(key.getName()+","+key.getAge()+value);
        }
        System.out.println("---------------------------------");
        //方式二
        Set<Student> key=m.keySet();
        for (Student s1:key){
            String value=m.get(s1);
            System.out.println(s1.getName()+","+s1.getAge()+","+value);
        }
    }
}

到此这篇关于Java案例之HashMap集合存储学生对象并遍历的文章就介绍到这了,更多相关HashMap存储对象并遍历内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java手写简易版HashMap的使用(存储+查找)

    HashMap的基本结构 package com.liuyuhe; public class Node { int hash; Object key; Object value; Node next; } package com.liuyuhe; public class MyHashMap { Node[] table; //位桶数组 int size; //存放键值对的个数 public MyHashMap() { table=new Node[16]; } } put()方法存储键值对 p

  • Java 详解Map集合之HashMap和TreeMap

    目录 HashMap 创建HashMap 添加元素 访问元素 删除元素 TreeMap 创建TreeMap 添加元素 访问元素 删除元素 HashMap.TreeMap区别 Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射,Map中的key不要求有序,不允许重复.value同样不要求有序,但可以重复.最常见的Map实现类是HashMap,他的储存方式是哈希表,优点是查询指定元素效率高. Map接口被HashMap和TreeMap两个类实现. HashMap HashM

  • Java8 HashMap键与Comparable接口小结

    目录 Java8 HashMap键与Comparable接口 这也是我在面试的时候经常问面试者的问题 容器(LinkedList.HashMap.Compare) 1.内部比较器|自然排序 2.外部比较器|自定义排序 Java8 HashMap键与Comparable接口 最容易使 HashMap 发生哈希冲突的方法是什么呢?我们可以创建一个类,让它的哈希函数返回一个最糟糕的结果 —— 比如一个常数. 这也是我在面试的时候经常问面试者的问题 哈希方法返回常数会造成什么结果?有很多次面试者会回答说

  • java哈希算法HashMap经典面试题目汇总解析

    目录 1.HashMap的数据结构? 2.HashMap的工作原理? 3.当两个对象的hashCode相同会发生什么? 4.你知道hash的实现吗?为什么要这样实现? 5.为什么要用异或运算符? 6.HashMap的table的容量如何确定? 7.HashMap中put方法的过程? 8.数组扩容的过程? 9.为什么不一直使用红黑树? 10.说说你对红黑树的见解? 11.jdk8中对HashMap做了哪些改变? 12.HashMap,LinkedHashMap,TreeMap有什么区别? 13.H

  • Java集合-HashMap

    目录 概述 重要的参数 put函数的实现 get函数的实现 hash函数的实现 RESIZE的实现 概述 ①以数组+链表+红黑树实现.主要用来处理具有键值对特征的数据.②当链表长度大于阈值(或者红黑树的边界值,默认为 8 )并且当前数组的长度大于 64 时,此时此索引位置上的所有数据改为使用红黑树存储.③补充:将链表转换成红黑树前会判断,即便阈值大于 8,但是数组长度小于 64,此时并不会将链表变为红黑树,而是选择逬行数组扩容.④每个Node节点存储着用来定位数据索引位置的hash值,K键,V值

  • Java中HashMap与String字符串互转的问题解决

    目录 背景: 原因: 背景: 当我们有需求将HashMap转为Json格式的String时,切记不要使用HashMap的toString()方法,需要使用FastJson/Gson将HashMap转为String.如果使用toString()方法进行转换时,是无法将字符串再转为HashMap的.它只会出现序列化报错: demo代码: HashMap<String, String> dataMap = new HashMap<>(4); dataMap.put("key1&

  • Java案例之HashMap集合存储学生对象并遍历

    一.需求:创建一个HashMap集合,键是学号(String),值是学生对象(Student),存储三个键值对元素,并遍历 分析: 1.定义学生类 2.创建HashMap集合对象 3.创建学生对象 4把学生添加到集合中 5.遍历集合 public class StudentDemo {   public static void main(String[] args) {       //创建Map集合对象       Map<String,Student> m=new HashMap<S

  • java用list集合存储学生信息并算出成绩平均值操作

    需求 键盘输入五名学生信息并录入list集合; 输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值: 计算并输出他们Java语言成绩的最大值和最小值. 思路 用Scanner 键盘输入 用for循环依次录入学生信息 用for循环输出学生信息 用for循环拿出学生成绩并求出成绩平均分 代码 补充知识:java 计算平均值,去除不合理的数据 我就废话不多说了,大家还是直接看代码吧~ package com.ine.tool; import java.util.ArrayList; im

  • Java HashSet集合存储遍历学生对象代码实例

    由于Set集合是不存储重复元素的,所以在做此案例时,如果我正常添加一个重复元素是什么结果呢? public class HashSetDemo { public static void main(String[] args) { //创建HashSet集合对象 HashSet<Student> hashSet = new HashSet<Student>(); //创建学生对象 Student s1 = new Student("爱学习", 21); Stude

  • Java案例分享-集合嵌套

    一.需求:创建一个ArrayList集合,存储三个元素,每一个元素都是HashMap,每一个HashMap的键和值都是String,并遍历 分析: 1.创建一个ArrayList集合 2.创建一个HashMap集合键和值都是String 3.将HashMap作为元素添加到ArrayList中 4.遍历 public static void main(String[] args) {       //创建ArrayList集合       ArrayList<HashMap<String,Str

  • Java案例使用集合方法实现统计任意字符串中字符出现的次数

    需求:键盘录入一个字符串,统计其中各个字符出现的顺序 分析: 1.使用Scanner类获取一个字符串 2.创建HashMap集合,如果追求统计字符的美观性,可以使用TreeMap 3.遍历字符串得到每一个字符并将其作为TreeMap的键 4.通过键去集合中找相对应的值,看返回值是什么? 返回null:说明该字符在集合中不存在,就将该字符为键,次数1为值进行存储 返回的不是null:说明该字符在集合中存在,就再次将该字符作为键,次数+1为值进行存储 5.遍历集合 public class Tree

  • 使用java反射将结果集封装成为对象和对象集合操作

    java反射机制是什么 反射机制是在运行状态中,可以知道任何一个类的属性和方法,并且调用类的属性和方法: 反射机制能够做什么 1.判断运行对象的所属类 2.构造任意一个类的对象 3.获取任意一个类的属性和方法 4.调用任意属性和方法 5.生成动态代理 利用反射将结果集封装成为对象或者集合(实测可用) package coral.base.util; import java.beans.IntrospectionException; import java.beans.PropertyDescri

  • Android List(集合)中的对象以某一个字段排序案例

    在Android开发中,有时我们需要对一个对象的集合按照某一个字段进行排序, Bean public class Student { private int studentId; private String studentName; private int age; public Student(int studentId , String studentName, int age){ this.studentId=studentId; this.studentName=studentName

  • sqlserver和java将resultSet中的记录转换为学生对象

    目录 1.Student.java 2.DBUtil.java 3.result.java 4.实现结果 要将结果转化为对象,所以第一步要创建一个对象: 1.Student.java public class Student { //学号.姓名.班级.性别.专业.学院 //类中的属性一定要跟数据库中的一摸一样 包括名称,数据类型 private String 学号; private String 姓名; private String 班级; private String 性别; private

  • Java通过反射将 Excel 解析成对象集合实例

    1.这是一个通过Java反射机制解析的工具类 2.使用时只需创建对应的对象,并在Excel的第一行填上对应的属性名 3.首先要添加相关的jar包: poi-3.8.jar poi-ooxml-3.9.jar poi-ooxml-schemas-3.9.jar xmlbeans-2.6.0.jar 4.看一下Excel的内容: 5.创建对应的实体类: package com.office.user.dto; public class UserDTO { private String idUser;

随机推荐