package com.test;
import java.util.*; public class Demo7_3 { public static void main(String[] args) {
// TODO Auto-generated method stub Emp emp1 = new Emp("s001", "aaa", 12.3f);
Emp emp2 = new Emp("s002", "bbb", 5.3f);
Emp emp3 = new Emp("s003", "李逵", 52f); //创建一个HashMap对象
HashMap hm = new HashMap();
//将emp放入到hm
hm.put("s001", emp1);
hm.put("s002", emp2);
//会将前面的值覆盖,不允许k重复
//hm.put("s002", emp3); hm.put("s003", emp3); //如果你要查找编号是s002的人
if(hm.containsKey("s002"))//返回布尔值
{
System.out.println("有该员工");
//如何取出,键<-->值
Emp emp = (Emp)hm.get("s002");
System.out.println("员工姓名是"+emp.getName()); }
else
{
System.out.println("没有该员工");
} //遍历HashMap中所有的key和value
//迭代器
Iterator it = hm.keySet().iterator();
//hasNext返回一个boolean值,看看是否还有下一个
//HashMap取出来的是乱序的,不是按照预先的顺序取出
while(it.hasNext())
{
//取出key it.next()返回的是object类型,用toString转换成字符串
//根据自己之前所写的键值的数据类型,定义相应数据类型的变量来接收
String key = it.next().toString();
Emp emp = (Emp)hm.get(key);
System.out.println("名字是"+emp.getName());
System.out.println("薪水是"+emp.getSal());
}
}
} //雇员管理类
class EmpManage {
private ArrayList al = null; // 构造函数最主要的作用就是初始化成员变量
public EmpManage() {
al = new ArrayList();
} // 加入员工
public void addEmp(Emp emp) {
al.add(emp);
} // 根据员工号显示该员工的相关信息
public void showInfo(String empNo) {
// 遍历整个ArrayList
for (int i = 0; i < al.size(); i++) {
// 取出Emp对象
Emp emp = (Emp) al.get(i); // 比较编号
if (emp.getEmpNo().equals(empNo)) {
System.out.println("找到该员工,他的信息是");
System.out.println("编号=" + empNo);
System.out.println("名字=" + emp.getName());
System.out.println("工资=" + emp.getSal());
}
}
} // 修改工资
public void updateSal(String empNo, float newSal) {
for (int i = 0; i < al.size(); i++) {
Emp emp = (Emp) al.get(i);
if (emp.getEmpNo().equals(empNo)) {
// 修改薪水
emp.setSal(newSal);
}
}
} // 删除员工
public void delEmp(String empNo) {
for (int i = 0; i < al.size(); i++) {
Emp emp = (Emp) al.get(i);
if (emp.getEmpNo().equals(empNo)) {
// 两种删除方式都可以
al.remove(i);
// al.remove(emp);
}
}
}
} //雇员类
class Emp { // 学号
private String empNo;
private String name;
private float sal; // 构造函数
public Emp(String empNo, String name, float sal) {
super();
this.empNo = empNo;
this.name = name;
this.sal = sal;
} public String getEmpNo() {
return empNo;
} public void setEmpNo(String empNo) {
this.empNo = empNo;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public float getSal() {
return sal;
} public void setSal(float sal) {
this.sal = sal;
} }

Java集合类之HashMap的更多相关文章

  1. java集合类,HashMap,ArrayList

    集合类 Collection LinkedList.ArrayList.HashSet是非线程安全的, Vector是线程安全的; ArrayXxx:底层数据结构是数组,连续存放,所以查询快,增删慢. ...

  2. Java集合类--温习笔记

    最近面试发现自己的知识框架有好多问题.明明脑子里知道这个知识点,流程原理也都明白,可就是说不好,不知道是自己表达技能没点,还是确实是自己基础有问题.不管了,再巩固下基础知识总是没错的,反正最近空闲时间 ...

  3. 做JavaWeb开发不知Java集合类不如归家种地

    Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...

  4. 【转载】Java集合类Array、List、Map区别和联系

    Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays ...

  5. 摘抄转载前辈们的Java集合类总结

    本文摘自 Blue Sky:http://www.cnblogs.com/hubcarl JAVA 集合类介绍和使用 类关系示意图Iterable(接口) │ └--Collection (接口) ├ ...

  6. Java集合类简单总结(重学)

    java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...

  7. Java集合类中的哈希总结

    JAVA集合类中的哈希总结 目 录 1.哈希表 2.Hashtable.HashMap.ConcurrentHashMap.LinkedHashMap.TreeMap区别 3.Hashtable.Ha ...

  8. Java集合类: Set、List、Map、Queue使用场景梳理

    本文主要关注Java编程中涉及到的各种集合类,以及它们的使用场景 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E ...

  9. Java 集合类详解(含类图)

    0.参考文献 此图中蓝色为抽象类.深红色表示接口(Arrays除外).绿色表示具体容器类 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedLi ...

随机推荐

  1. SignalR 跨域设置

    参考文章:http://www.cnblogs.com/nywd/p/3691813.html 上一节,已经实现了,当前域内的通信,这一节中,介绍一下跨域的即时通信,既然要做,我们肯定要把这个推送及聊 ...

  2. Plugin with id 'android-apt' not found

    解决路径: 1.查看miniSDK最外面的build.gradle 添加这句.具体参考一下demo.谢谢

  3. 基于node/mongo的App Docker化测试环境搭建

    搭建步骤: 1.宿主机环境  ubuntu 14.4宿主机环境(云主机): 安装wget与curl(sudo apt-get install wget curl)2.安装Docker (wget -q ...

  4. 判断对象是不是Vector

    判断对象是不是数组可以用 var arr:Array = []; trace(arr is Array);//true var vec:Vector.<String> = new Vect ...

  5. 专题三、ArrayList遍历方式以及效率比较

    一.遍历方式 ArrayList支持三种遍历方式. 1.第一种,随机访问,它是通过索引值去遍历 由于ArrayList实现了RandomAccess接口,它支持通过索引值去随机访问元素. 代码如下: ...

  6. Headfirst设计模式的C++实现——迭代器(Iterator)改良版

    iterator.h #ifndef _ITERATOR_H_ #define _ITERATOR_H_ class Iterator { public: ; ; }; #endif menu.h # ...

  7. Android-ViewPagerIndicator-master 、Android-PullToRefresh 学习篇

    最近在学习android,然后看到了很多有用的开源库.其中一个就是Android-ViewPagerIndicator :. 这是与ViewPager兼容的一个分页指示器库.分页指示器(Friends ...

  8. 使用XmlPullParser对xml进行读取

    XML文件是一种标记性语言;在开发中经常在接口交互时被用作报文传输或者把自定义的类序列化为XML的形式存储到数据库.正因为XML文件这么常用,使用JAVA对XML文件进行读写操作是每一个开发人员必须掌 ...

  9. Centos 6.4 /usr/src/kernels 目录为空解决方法

    /usr/src/kernels 目录下是Linux的内核源码,如果其为空,则需要安装安装 kernel-headers 和 kernel-devel包

  10. hdu 5172 GTY's gay friends

    GTY's gay friends 题意:给n个数和m次查询:(1<n,m<1000,000);之后输入n个数值(1 <= ai <= n):问下面m次查询[L,R]中是否存在 ...