Java集合类之Hashtable
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); //创建一个HashTable对象
//HashMap和HashTable的用法完全一致
/*
* Hashtable是线程同步的会去锁当1号进程访问而是,2号要等待,安全但会导致速度变慢
* HashMap是异步的不安全,但速度较快
*一个线程的应选用HashMap,因为不会存在同步,一般只有做服务器时,才要求同步
*/
Hashtable ht = new Hashtable();
ht.put("s001", emp1);
System.out.println(ht.get("s001"));
// //放空值Hashtable会出现异常
// ht.put(null, null);
// System.out.println("测试:"+ht.get(null));
HashMap hm = new HashMap();
//HashMap可以放空值
hm.put(null, null);
System.out.println("测试"+hm.get(null)); }
} //雇员管理类
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集合类之Hashtable的更多相关文章
- Java集合类--温习笔记
最近面试发现自己的知识框架有好多问题.明明脑子里知道这个知识点,流程原理也都明白,可就是说不好,不知道是自己表达技能没点,还是确实是自己基础有问题.不管了,再巩固下基础知识总是没错的,反正最近空闲时间 ...
- 做JavaWeb开发不知Java集合类不如归家种地
Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...
- 【转载】Java集合类Array、List、Map区别和联系
Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays ...
- 摘抄转载前辈们的Java集合类总结
本文摘自 Blue Sky:http://www.cnblogs.com/hubcarl JAVA 集合类介绍和使用 类关系示意图Iterable(接口) │ └--Collection (接口) ├ ...
- Java集合类简单总结(重学)
java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...
- Java集合类中的哈希总结
JAVA集合类中的哈希总结 目 录 1.哈希表 2.Hashtable.HashMap.ConcurrentHashMap.LinkedHashMap.TreeMap区别 3.Hashtable.Ha ...
- Java集合类: Set、List、Map、Queue使用场景梳理
本文主要关注Java编程中涉及到的各种集合类,以及它们的使用场景 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E ...
- Java集合类: Set、List、Map、Queue使用
目录 1. Java集合类基本概念 2. Java集合类架构层次关系 3. Java集合类的应用场景代码 1. Java集合类基本概念 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的 ...
- 基础知识《六》---Java集合类: Set、List、Map、Queue使用场景梳理
本文转载自LittleHann 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E6%8E%92%E5%BA%8F% ...
随机推荐
- eclipse怎么切换SVN的用户
在用eclipse的时候会经常用到SVN来进行代码的版本控制,为了方便起见,我们会保存密码,从此之后就不会再出现输入或者修改用户名和密码的地方了,这时候想切换用户怎么办,在本地操作的一种方法是删除SV ...
- 牛客_剑指offer_重建二叉树,再后续遍历_递归思想_分两端
总结: 重建二叉树:其实就是根据前序和中序重建得到二叉树,得到后续,只要输出那边设置输出顺序即可 [编程题]重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的 ...
- list,tuple,dict,字符串常用知识总结
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- java多线程总结五:线程池的原理及实现
1.线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力. 假设一个服务器完成一项任务所需时间为:T1 创 ...
- JavaScript高级程序设计(九):基本概念----语句的特殊点
一.Label语句.break/continue语句和for循环语句的结合使用: 1.Label语句可以在代码中添加标签,以便将来使用.语法: label:statment eg: start:f ...
- ES6的promise的学习
1.Promise的含义: Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Pro ...
- How to hide an entry in the Add/Remove Programs applet?
Original link: http://www.winhelponline.com/articles/15/1/How-to-hide-an-entry-in-the-AddRemove-Prog ...
- MFC通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
- html元素li移动动态效果
在日常工作当中遇到了一个问题,平铺型列表修改单个内容设置排序时列表排序应与之对应.一下是一个小小的例子:简单的解决了此类问题,以浮动的形式改变当前的数据的显示顺序.有不足之处欢迎指点,后期还会做一个更 ...
- win2008 r2 远程桌面问题
今天去机房给三台服务器上架,装了2008 R2系统,客户要求从外面通过公网IP能够访问服务器桌面,三台服务器都安装了远程协助的功能,结果有两台能正常访问,另外一台始终连不上,不知道哪个地方设置有问题, ...