获取hashMap值的四种方法

ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。

List接口
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。

Map接口
请注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 value。
HashMap是允许使用 null 值和 null 键的!Hashtable是不允许的!
HashSet : 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。

果说查找的话肯定是HashMap的效率高些嘛,因为它是散列存储的,而ArrayList是顺序存储的

执行效率是Map的一个大问题。看看get()要做哪些事,就会明白为什么在ArrayList中搜索“键”是相当慢的。而这正是HashMap提高速度的地方。HashMap使用了特殊的值,称为“散列码”(hash code),来取代对键的缓慢搜索。“散列码”是“相对唯一”用以代表对象的int值,它是通过将该对象的某些信息进行转换而生成的。所有Java对象都能产生散列码,因为hashCode()是定义在基类Object中的方法。

HashMap就是使用对象的hashCode()进行快速查询的。此方法能够显着提高性能

获取Map的值主要有四种方法,这四种方法又分为两类,一类是上面咱们使用的m.keySet(),另一类是通过m.entrySet()获取。

m.keySet() ,先获取所有的key集合,当需要查询value的时候,通过key来查询。
m.entrySet(),是直接将key和value的键值对直接取出来,只查询一次。

public static void main(String[] args) {
		
		        Map<String,String> map = new HashMap<String,String>();
		        map.put("b","1");
		        map.put("a","3");
		        map.put("c","6");
		        map.put("d","8");
		        map.put("e","9");
		        map.put("f","3");

		        //通过map.keySet()方法
		        //方法一:通过循环得到key的值,然后通过get(key)获取value;
		       for(String key : map.keySet()){
		            String value = map.get(key);
		            System.out.println(key+"  "+value);
		        }
		        //方法二:使用迭代器,获取key;然后判断迭代器是否有下一个。
		        Iterator<String> iter = map.keySet().iterator();
		        while(iter.hasNext()){
		            String key=iter.next();
		            String value = map.get(key);
		            System.out.println(key+" "+value);
		        }
		        //通过map.entrySet()方法
		        //方法三:循环map里面的每一对键值对,然后获取key和value
		        for(Map.Entry<String, String> vo : map.entrySet()){
		            vo.getKey();
		            vo.getValue();
		            System.out.println(vo.getKey()+"  "+vo.getValue());
		        }

		        //方法四:使用迭代器,获取key
		        Iterator<Entry<String,String>> iter = map.entrySet().iterator();
		        while(iter.hasNext()){
		            Entry<String,String> entry = iter.next();
		            String key = entry.getKey();
		            String value = entry.getValue();
		            System.out.println(key+" "+value);
		        }
		    }
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序媛小方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值