HashMap集合类和ArrayList最大的不同在于,存储对象的方式不同,ArrayList仅仅是对对象进行编号,然后顺序存储,查找的时候一个个找就行了,HashMap则不同,它是用一个号码去对应一个对象,这个号码是任意的用户指定的,以此形成一个键值对key——value,这样的话查找起来就有个问题了,必须知道key值才能去得到一个对象,但是这个问题用迭代器得到了解决,代码如下:
//HashMap的使用package com.test;
Map结构的集合类:HashMap和Hashtable
import java.util.*;
public class Test7 {
/** * @param args */
/** * @param args */
public static void main(String[] args) { // TODO Auto-generated method stub
HashMap hm=new HashMap();
Student stu1= new Student("yangweiharry" ,32.2f);
Student stu2= new Student("harry" ,3.3f);
hm.put("u1", stu1);
hm.put("u2", stu2);
if(hm.containsKey("u1" )){ // //查找HashMap里面是否存在某个对象
System. out.println("找到这个对象" ); }
else{ System. out.println("未找到这个对象" ); }
Iterator it=hm.keySet().iterator(); //遍历HashMap,用到一个叫做迭代器的东西Iterator
while(it.hasNext()){
String key=it.next().toString(); // //获取对象的key值
Student stu=(Student)hm.get( key);
System. out.println("名字:" +stu.getName());
System. out.println("学费:" +stu.getFee()); } }
}
}
class Student{
private String name;
private float fee ;
public String getName() {
return name ; }
public void setName(String name) {
this.name = name; }
public float getFee() {
return fee ; }
public void setFee(float fee) {
this.fee = fee; }
public Student(String name, float fee){
this.name =name; this.fee =fee; }
}
结果:找到了这个对象
名字:harry
学费:3.3
名字yangweiharry
学费:32.2
两者的区别如下:最重要是同步和线程安全的概念
:
: