哈希表HashMap中可以存储N个对象,每个对象由一个唯一的Key值关联。

哈希表主要用于快速查找
那么,怎么样查找才算是“快速”?
假设有1000个Student对象,
(1) 放在ArrayList里
用indexOf查找,是按顺序从前往后找一遍,最多要比较1000次
(2) 放在HashMap里
用get获取,不是逐个比较,而是直接由Key值取得相应的对象。。。速度快

代码如下:

HelloWord.java

package my;import java.util.HashMap;
import java.util.ArrayList;public class HelloWorld
{public static void main(String[] args){        HashMap<Integer,Student> studentHash=new HashMap<Integer,Student>();studentHash.put(1000, new Student(1000,"球球","14523652345"));studentHash.put(1001, new Student(1001,"腿腿","12356231256"));studentHash.put(1002, new Student(1002,"闰土","14567821256"));studentHash.put(1003, new Student(1003,"妹爷","18792157456"));Student value=studentHash.get(1000);if(value!=null) System.out.println("found:"+value.toString());studentHash.remove(1000);value=studentHash.get(1000);if(value==null) System.out.println("没有找到球球");System.out.println("打印所有Hash表:");for(Student e : studentHash.values())System.out.println("got:"+e);//不需要定义Student类型,直接用HashMap表示一个学生相关数据,把HashMap当成一个通用的“结构体”来使用HashMap<String,Object> row=new HashMap<String,Object>();row.put("id", 1000);row.put("name","球球");ArrayList<HashMap> studentList=new ArrayList<HashMap>();studentList.add(row);}
}

Student.java

package my;public class Student
{int id;String name;String phone;public Student(int id,String name, String phone) {this.id=id;this.name=name;this.phone=phone;}@Overridepublic boolean equals(Object obj){Student other=(Student)obj;//return other.id==this.id;//如果用name的话return other.name.equals(this.name);}@Overridepublic String toString(){return "("+id+","+name+","+phone+")";}
}

运行截图如下:

Java高级语法笔记-HashMap相关推荐

  1. Java高级语法笔记-模板类

    模板类 模板类用与表示通用的数据结构和算法. 例如,定义一个类List,表示通用链表(适用于任意对象的类型) 定义模板类: class List<T>{ } 使用模板类:创建List对象时 ...

  2. Java高级语法笔记-反射机制(Reflection) (1)

    反射机制:在C/C++里面是没有的. 反射机制是Java的一个非常重要的机制.一些著名的应用框架都使用了此机制. java.lang.Class它是Java语法的一个基础类,用于描述一个class对象 ...

  3. Java高级语法笔记-枚举类型

    用enum定义枚举类型,即定义一些常量. public enum Weekday{ SUNDAY,MONDAY,TUESDAY,WEDNESDAY, THURSDAY,FRIDAY,SATURDAY ...

  4. Java高级语法笔记-匿名类(Anonymous Class)

    匿名类(Anonymous Class) 匿名内部类,简称匿名类:是内部类的一种化简写法. 基本写法如下: BaseType obj=new BaseType(){ //类的定义 } Java项目中匿 ...

  5. Java高级语法笔记-语法支持的异常

    语法支持的异常 Java对异常支持得很彻底,举例来说: (java.lang.*下面,语法自带的异常类) 数组越界 ArrayIndexOutOfBoundsException 除0异常 Arithm ...

  6. Java高级语法笔记-文本文件的按行读取

    代码如下: HelloWorld.java package my;import java.io.BufferedReader; import java.io.File; import java.io. ...

  7. Java高级语法笔记-文件操作-链表的存储

    代码如下: AfByteBuffer.java package my;import java.io.File; import java.io.FileInputStream; import java. ...

  8. Java高级语法笔记-文件读写(2)

    文件读写(2) int与byte[]之间的互相转化 使用java.nio.ByteBuffer类可以完成int到 byte[]的转换 byte[] buf = new byte[4]; int a = ...

  9. Java高级语法笔记-文件读写

    写文件:追加模式写入 在构造时第2个参数置为true,表示append new FileOutputStream(filename, true); 使用FileInputStream可以从文件中读取数 ...

最新文章

  1. wordpress主题
  2. C++随笔——虚拟继承
  3. linux 进程的pid分配策略——pid位图算法
  4. 【OpenCV】-算子(Sobel、Canny、Laplacian)学习
  5. hprose-php教程,PHP RPC框架 hprose 上手玩玩
  6. ABP文档笔记 - 通知
  7. matlab绿色 不伤眼,什么颜色的灯光最伤眼睛不看后悔啊
  8. 关于JavaScript打印去掉页眉页脚
  9. kafka数据清理配置——删除篇
  10. 重复启动Tomcat时,大概率出现Deploying web application direct
  11. 万洲金业:白银继续走高,预期缓慢冲高
  12. oracle怎么判断逻辑读,如何查看Oracle数据库物理读、逻辑读前10的sql?
  13. 树莓派4B (Raspberry pi 32 bit)安装uv4l驱动,解决opencv无法获取CSI摄像头图像问题
  14. php ssl 465,帝国CMS邮件无法发送SSL465端口无法发送的解决办法
  15. 中小企业如何危中求机?接住这套私域流量低成本解决方案!
  16. 大数据级新闻去重实现 - 1.在线实时方案
  17. 微信小程序网络请求异常怎么办_解决·微信小程序开发-网络请求报Invalid request 400错误...
  18. 简单实现Vite的HRM热更新 ———《第二篇热更新上》
  19. 浅谈垃圾渗滤液处理技术分析!
  20. Cnopendata国家基金项目数据简介

热门文章

  1. 利用***检测系统防范******方法介绍
  2. 程序员常挂在嘴边的10句话:刚刚还是好的啊!
  3. 我的心无法平静python好学吗
  4. 飞秋2010下载企业信息化办公
  5. 携号转网将于明年在全国范围内实施
  6. 《C++0x漫谈》系列之:右值引用
  7. 程序员如何应对中年危机?让编程变得不再重要
  8. 新入行程序员须知的8件事
  9. mysql 索引 测试_mysql的索引测试
  10. python自定义类的属性_我可以将自定义方法/属性添加到内置Python类型吗?