Java----HashMap类集合
package com.panhui;
import java.util.*;
publicclassDemo9_28_1 {
publicstatic void main(String[]args) {
// TODO Auto-generated method stub
//创建一个HashMap
HashMaphm =new HashMap();
Empemp1=newEmp("001","aaa",3.4f);
Empemp2=newEmp("002","bbb",4.5f);
//将emp放入hm中
hm.put("001",emp1);
hm.put("002",emp2);
//查找
if(hm.containsKey("001"))
{
System.out.println("该员工存在");
//如何取出value
Empemp= (Emp)hm.get("002");
System.out.println("编号:"+emp.getEmpNo());
System.out.println("名字:"+emp.getName());
System.out.println("工资:"+emp.getSal());
}
else
{
System.out.println("该员工不存在");
}
//遍历HashMap中所有的key和vaule
//迭代器
Iteratorit =hm.keySet().iterator();
//判断下一个存不存在
while(it.hasNext())
{
//取出key值
Stringkey=it.next().toString();
//通过key取出vaule
Empemp= (Emp)hm.get(key);
System.out.println("编号:"+emp.getEmpNo());
System.out.println("姓名:"+emp.getName());
System.out.println("薪水:"+emp.getSal());
}
}
}
class Emp
{
privateStringempNo;
privateStringname;
privatefloatsal;
publicEmp(StringempNo,Stringname,floatsal)
{
this.empNo =empNo;
this.name =name;
this.sal =sal;
}
publicString getEmpNo() {
returnempNo;
}
publicvoid setEmpNo(String empNo) {
this.empNo =empNo;
}
public String getName() {
returnname;
}
publicvoid setName(String name) {
this.name =name;
}
publicfloat getSal() {
returnsal;
}
publicvoid setSal(floatsal) {
this.sal =sal;
}
}
结果:
总结:
1. HashMap类的插入,如果两个类的key值是相同的,那么后者的内容会覆盖前者。
2. HashMap类的打印是没有顺序可言的,而且一个key对应一个value
3. 创建一个HashMap类:HashMap hm = new HashMap();
在类中添加内容: Emp emp1 = new Emp("001","aaa",3.4f);
Emp emp2 = new Emp("002","bbb",4.5f);
在HashMap中查找某一个类:根据key的值来寻找
if(hm.containsKey("001"))
{}
遍历整个HashMap类,用到迭代器
//遍历HashMap中所有的key和vaule
//迭代器
Iterator it = hm.keySet().iterator();
//判断下一个存不存在?
while(it.hasNext())
{
//取出key值
String key = it.next().toString();
//通过key取出vaule
Emp emp = (Emp)hm.get(key);
/*
打印类的内容
*/
}
几个集合类的区别
数据增长:
缺省的情况
ArrayList是原来的50%
Vector是原来的100%
同步:就是多个程序同时操作这个Hashtable或者Vector
如果只有一个线程,用HashMap的效率更高。
大总结:
1, 如果要求线程安全,使用Vector、Hashtable
2, 如果不要求线程安全,应使用ArrayList, LinkedList, HashMap
3, 如果要求键值对,则用HashMap,Hashtable
4, 如果数据量很大,又要线程安全考虑Vector