Map结构的集合类:HashMap和Hashtable

Map结构的集合类:HashMap和Hashtable
 HashMap集合类和ArrayList最大的不同在于,存储对象的方式不同,ArrayList仅仅是对对象进行编号,然后顺序存储,查找的时候一个个找就行了,HashMap则不同,它是用一个号码去对应一个对象,这个号码是任意的用户指定的,以此形成一个键值对key——value,这样的话查找起来就有个问题了,必须知道key值才能去得到一个对象,但是这个问题用迭代器得到了解决,代码如下:
//HashMap的使用package com.test;
import java.util.*;
public class Test7 {
    /**     * @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
 
两者的区别如下:最重要是同步和线程安全的概念


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值