HashMap用法

HashMap和HashTable使用键-值(key-value)来映射和存储数据,将键映射到值的对象,其中键和值都是对象,键必须唯一,但值可以重复。
它们的区别如下:
1、HashTable是线程安全的,HashMap是非线程安全的,效率比HashTable的要高,但是在多线程场合要手动同步HashMap。
2、HashTable的键和值都不允许有null值存在,而HashMap则允许。

3、HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。


基本用法:

import java.util.*;

public class HashMapDemo {
  public static void main(String arg[]) {
      
     HashMap<String, Integer> hm = new HashMap<String, Integer>();
     //添加元素
     hm.put("a", 1);
     hm.put("b", 2);
     hm.put("c", 3);
     hm.put("c", 3);//键值重复编译不会报错,但运行的结果size()还是3
    
     //Key的个数  
     int size = hm.size();  
     System.out.println(size);   
/* 
3 
*/ 

     //获得HashMap中的键和值 
     Set keys = hm.keySet(); 
     Iterator keysIter = keys.iterator();
     while (keysIter.hasNext())
     {
         String key = (String)keysIter.next();
         int value = (int) hm.get(key);  
         System.out.println(key+"--"+value);  
     }
/* 
b--2 
c--3 
a--1 
*/  

     //获得HashMap中的值 
     Collection values = hm.values();
     Iterator valuesIter = values.iterator();
     while (valuesIter.hasNext())
     {
          System.out.println("值: " + valuesIter.next());
     }
/* 
值:2 
值:3 
值:1 
*/  

     //判断是否已存在Key  
     boolean b1 = hm.containsKey("a");  
     System.out.println(b1);  
/* 
true 
*/  
       
     //判断是否已存在Value  
     boolean b2 = hm.containsValue(1);  
     System.out.println(b2); 
/* 
true 
*/  
    
  }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值