1. HashMap集合(HashMap<String,Student>)的案例

HashMap是最常用的Map集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里。

HashMap的底层是利用hash算法算出键对应的哈希码,然后我们把值存放在这个哈希码对应的存储位置。当我们需要取出这个值的时候,我们利用hash算法算出键对应的哈希码,然后就可以快速定位到哈希码对应的存储地方的值。

哈希表结构主要作用:快速定位查找。

2. 代码示例:

(1)Student.java:

 1 package cn.itcast_02;
 2
 3 public class Student {
 4     private String name;
 5     private int age;
 6
 7     public Student() {
 8         super();
 9     }
10
11     public Student(String name, int age) {
12         super();
13         this.name = name;
14         this.age = age;
15     }
16
17     public String getName() {
18         return name;
19     }
20
21     public void setName(String name) {
22         this.name = name;
23     }
24
25     public int getAge() {
26         return age;
27     }
28
29     public void setAge(int age) {
30         this.age = age;
31     }
 }

(2)代码测试类HashMapDemo3 

 1 package cn.itcast_02;
 2
 3 import java.util.HashMap;
 4 import java.util.Set;
 5
 6 /*
 7  * HashMap<String,Student>
 8  * 键:String    学号
 9  * 值:Student 学生对象
10  */
11 public class HashMapDemo3 {
12     public static void main(String[] args) {
13         // 创建集合对象
14         HashMap<String, Student> hm = new HashMap<String, Student>();
15
16         // 创建学生对象
17         Student s1 = new Student("周星驰", 58);
18         Student s2 = new Student("刘德华", 55);
19         Student s3 = new Student("梁朝伟", 54);
20         Student s4 = new Student("刘嘉玲", 50);
21
22         // 添加元素
23         hm.put("9527", s1);
24         hm.put("9522", s2);
25         hm.put("9524", s3);
26         hm.put("9529", s4);
27
28         // 遍历
29         Set<String> set = hm.keySet();
30         for (String key : set) {
31             // 注意了:这次值不是字符串了
32             // String value = hm.get(key);
33             Student value = hm.get(key);
34             System.out.println(key + "---" + value.getName() + "---"
35                     + value.getAge());
36         }
37     }
38 }

运行效果,如下:

转载于:https://www.cnblogs.com/hebao0514/p/4865092.html

Java基础知识强化之集合框架笔记56:Map集合之HashMap集合(HashMapString,Student)的案例...相关推荐

  1. Java基础知识强化之IO流笔记41:字符流缓冲流之复制文本文件案例02(使用 [ newLine() / readLine() ] )(重要)...

    1. 使用字符流缓冲流的特殊功能 [ newLine() / readLine() ] 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中  数据源: a.txt -- 读取数据 ...

  2. Java基础知识强化之IO流笔记03:throws的方式处理异常

    1. 什么时候使用throws ? (1)定义功能方法时候,需要把出现的问题暴露出来,让调用者去处理.那么就通过throws在方法上标识. (2)有时候,我们是可以对异常进行处理的,但是又有些时候,我 ...

  3. Java基础知识强化之IO流笔记32:转换流之OutputStreamWriter的使用

    1. OutputStreamWriter的使用 OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流 OutputStreamWriter ...

  4. Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)...

    1. Future接口简介 在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现. Future接口是Java标准API ...

  5. Java基础知识强化之网络编程笔记05:UDP之多线程实现聊天室案例

    1. 通过多线程改进刚才的聊天程序,这样我就可以实现在一个窗口发送和接收数据了 2.  代码示例: (1)SendThread.java,如下: 1 package com.himi.udpDemo2 ...

  6. Java基础知识强化之IO流笔记44:IO流练习之 复制图片的 4 种方式案例

    1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有 ...

  7. Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例

    1. 数据来自于键盘录入 键盘录入数据要自己控制录入结束. 2. 代码实现: (1)发送端: 1 package com.himi.updDemo1; 2 3 import java.io.IOExc ...

  8. Java基础知识强化之IO流笔记59:打印流

    1. 打印流 (1)分类: • 字节打印流   PrintStream • 字符打印流   PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...

  9. Java基础知识强化之网络编程笔记03:UDP之UDP协议发送数据 和 接收数据

    1. UDP协议发送数据 和 接收数据 UDP协议发送数据: • 创建发送端的Socket对象 • 创建数据,并把数据打包 • 调用Socket对象的发送方法,发送数据包 • 释放资源  UDP协议接 ...

  10. Java基础知识强化之IO流笔记42:IO流总结(图解)

    1. IO流总结(图解) 转载于:https://www.cnblogs.com/hebao0514/p/4868913.html

最新文章

  1. JS中的 generator
  2. 电脑php在哪里,电脑上地址栏在哪?
  3. 高性能缓存服务器Varnish详解
  4. 两条信号之间加电容_上海贴片电阻电容厂家地址-华腾电子
  5. linux php不能写文件内容,php 在linux系统下写出文件问题
  6. endpointimpl怎么填参数_App拉新:以老拉新活动怎么做?
  7. 贾跃亭旗下FF公司遭做空 美国机构质疑其造车能力:卖不出一辆FF91
  8. 接收 go run main.go 后面的参数_厦门油泥水三相离心分离机功能和参数
  9. 2018福布斯全球科技女性TOP 50榜单:李飞飞、滴滴柳青上榜
  10. js类型判断(数字、0、、undefined、null)
  11. Dart中dynamic,var,object三者的区别
  12. xgboost和lightGBM区别
  13. dev-cpp linux,QT4+Devcpp开发环境搭建(参照网上资料整理)
  14. 如何合并excel文件
  15. Bitset 源码解析
  16. 如何看懂公司的财务报表(2)
  17. 全国独一份!200万杭州人公积金可用支付宝刷脸提取,秒到账!
  18. 2020-11-12 Python 类继承、多态和特殊模式
  19. 备胎的自我修养 | (1)备胎的境界--七友
  20. fiddler抓包指南(浏览器、app抓包及证书安装)

热门文章

  1. 【Linux】一步一步学Linux——pmap命令(145)
  2. java 2d 绘图教程_Java标准教程:Java 2D绘图--第2章 从绘图开始
  3. 51单片机的复位引脚_51单片机复位电路工作原理
  4. python mysql数据库操作grid控件_Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能...
  5. 每天一道LeetCode-----找到序列中第一个没有出现的正整数,要求时间复杂度是O(n),空间复杂度是O(1)
  6. 模拟登录123026网站
  7. 使用debug工具修改寄存器中的值
  8. mysql语句的左外链接_MySQL中的JOIN连接
  9. CFtpFileFind FindFile卡住的问题
  10. pstools套件在渗透中的应用详解