Map集合

本文详细介绍了HashMap的特点,包括无序性、键值对存储以及键的唯一性。展示了三种不同的遍历HashMap的方法:通过keySet、entrySet和迭代器。同时对比了HashMap与HashTable的区别,强调HashMap允许键和值为null,且是非同步的。最后,通过示例代码加深了遍历HashMap的理解。
摘要由CSDN通过智能技术生成

1、Map

1.1 特点:无序、以键值对的形式添加元素,键不能重复,值可以重复
           它没有继承Collection接口


	public static void main(String[] args) {
	
    //HashMap 异步 非安全的
	Map<String,Object> map = new HashMap<String,Object>();
	map.put("1", "a");
	map.put("1", "b");
	map.put("2", "c");
	map.put("3", "d");
	
	//遍历方式1 先获取set集合所有键,再通过键得到值,一起遍历
	Set<String> keySet = map.keySet();
	for (String string : keySet) {
		System.out.println(string+"="+map.get(string));
	}
	
	//遍历方式2 直接通过entrySet获得键值对再遍历出来
	System.out.println("-------------");
	Set<java.util.Map.Entry<String, Object>> entrySet = map.entrySet();
	for (java.util.Map.Entry<String, Object> entry : entrySet) {
		System.out.println(entry);
	}
	
	//也可通过迭代器遍历
	System.out.println("--------------");
	Iterator<java.util.Map.Entry<String, Object>> ite = entrySet.iterator();
	while(ite.hasNext()) {
		System.out.println(ite.next());
	}
	
	//HashMap的键和值都可以用null
	System.out.println("---------------");
	map.put(null, null);
	for (java.util.Map.Entry<String, Object> entry : entrySet) {
		System.out.println(entry);
	}
	
}

效果图:

1.2遍历


   1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)

//map集合的特点  无序,键值对,键不可以重复,值考科一重复
		Map<String,Object> map = 
				new HashMap<String,Object>();
		
		map.put("哒吥遛", "W");
		map.put("哎克斯", "X");
		map.put("蝌", "K");
		map.put("诶", "A");
		
		//map集合的遍历方式 1.获取map集合中的所有key的set集合,再通过捡
		Set<String> keySet = map.keySet();
		
		for (String key : keySet) {
			//System.out.println(key);
			//通过键获取对应的值
			Object v = map.get(key);
			System.out.println(key+"="+v);
		}

    1.2.2 先取出保存所有Entry的Set,再遍历此Set即可 (重要点)

Set<Entry<String, Object>> entrySet = map.entrySet();
		
		for (Entry<String, Object> entry : entrySet) {
			System.out.println(entry);
			System.out.println(entry.getKey());
			System.out.println(entry.getValue());
		}

1.3HashMap与HashTable之间的区别 

HashTable的键或值为空的话会报空指针的错误

 异步        非安全的   hashmap  键可以为null,值也可以为null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值