Java高级语法笔记-HashMap
哈希表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相关推荐
- Java高级语法笔记-模板类
模板类 模板类用与表示通用的数据结构和算法. 例如,定义一个类List,表示通用链表(适用于任意对象的类型) 定义模板类: class List<T>{ } 使用模板类:创建List对象时 ...
- Java高级语法笔记-反射机制(Reflection) (1)
反射机制:在C/C++里面是没有的. 反射机制是Java的一个非常重要的机制.一些著名的应用框架都使用了此机制. java.lang.Class它是Java语法的一个基础类,用于描述一个class对象 ...
- Java高级语法笔记-枚举类型
用enum定义枚举类型,即定义一些常量. public enum Weekday{ SUNDAY,MONDAY,TUESDAY,WEDNESDAY, THURSDAY,FRIDAY,SATURDAY ...
- Java高级语法笔记-匿名类(Anonymous Class)
匿名类(Anonymous Class) 匿名内部类,简称匿名类:是内部类的一种化简写法. 基本写法如下: BaseType obj=new BaseType(){ //类的定义 } Java项目中匿 ...
- Java高级语法笔记-语法支持的异常
语法支持的异常 Java对异常支持得很彻底,举例来说: (java.lang.*下面,语法自带的异常类) 数组越界 ArrayIndexOutOfBoundsException 除0异常 Arithm ...
- Java高级语法笔记-文本文件的按行读取
代码如下: HelloWorld.java package my;import java.io.BufferedReader; import java.io.File; import java.io. ...
- Java高级语法笔记-文件操作-链表的存储
代码如下: AfByteBuffer.java package my;import java.io.File; import java.io.FileInputStream; import java. ...
- Java高级语法笔记-文件读写(2)
文件读写(2) int与byte[]之间的互相转化 使用java.nio.ByteBuffer类可以完成int到 byte[]的转换 byte[] buf = new byte[4]; int a = ...
- Java高级语法笔记-文件读写
写文件:追加模式写入 在构造时第2个参数置为true,表示append new FileOutputStream(filename, true); 使用FileInputStream可以从文件中读取数 ...
最新文章
- wordpress主题
- C++随笔——虚拟继承
- linux 进程的pid分配策略——pid位图算法
- 【OpenCV】-算子(Sobel、Canny、Laplacian)学习
- hprose-php教程,PHP RPC框架 hprose 上手玩玩
- ABP文档笔记 - 通知
- matlab绿色 不伤眼,什么颜色的灯光最伤眼睛不看后悔啊
- 关于JavaScript打印去掉页眉页脚
- kafka数据清理配置——删除篇
- 重复启动Tomcat时,大概率出现Deploying web application direct
- 万洲金业:白银继续走高,预期缓慢冲高
- oracle怎么判断逻辑读,如何查看Oracle数据库物理读、逻辑读前10的sql?
- 树莓派4B (Raspberry pi 32 bit)安装uv4l驱动,解决opencv无法获取CSI摄像头图像问题
- php ssl 465,帝国CMS邮件无法发送SSL465端口无法发送的解决办法
- 中小企业如何危中求机?接住这套私域流量低成本解决方案!
- 大数据级新闻去重实现 - 1.在线实时方案
- 微信小程序网络请求异常怎么办_解决·微信小程序开发-网络请求报Invalid request 400错误...
- 简单实现Vite的HRM热更新 ———《第二篇热更新上》
- 浅谈垃圾渗滤液处理技术分析!
- Cnopendata国家基金项目数据简介