Java基本功:容器Map

本文介绍了Java中的Map接口,强调其无排序特性。文章详细讲解了Map的三种遍历方式,以及重点探讨了HashMap和TreeMap的实现原理。HashMap基于哈希算法,要求实现HashCode()和equals()方法;而TreeMap则采用红黑树结构,通过compare()或compareTo()方法决定排序,提供subMap()方法获取子树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

Map:一个键值(key)对应一个对象(value)的容器接口,并且没有排序

Map的三种遍历

Entry对象(键值对对象):在获得entrySet()返回的Set对象必须声明Entry类型,value>

HashMap:哈希算法 ,同样需要实现HashCode()和equals()方法

TreeMap:和TreeSet类似,红黑树结构,同样进行排序(次序由存入TreeMap的类的compare()或compareTo()方法决定,也就是说装入TreeMap的类必须实现HashCode(),equals(),compare()三个方法),同时TreeMap还有一个subMap()用来返回子树。


Map:一个键值(key)对应一个对象(value)的容器接口,并且没有排序

Map的三种遍历

		//遍历方式:由于Map没有提供iterator()函数,而是用keySet(),values()和entrySet()三个方法取代
		//方法一
		Collection<String> c=m.values();
		for(Iterator<String> it=c.iterator();it.hasNext();) {
			System.out.print(it.next()+" ");
		}
		System.out.println();
		//方法二
		Set<Integer> s=m.keySet();
		for(Iterator<Integer> it=s.iterator();it.hasNext();) {
			System.out.print(it.next()+" ");
		}
		System.out.println();
		//方法三
		/*
		 * Entry对象:把键值当成一个对象,用来转换Map与其它容器(Set)容器的参数不匹配问题
		 * 也提供了获取键,值,以及设置值的方法
		 * getKey():获取当前键值对里的键
		 * getValue():获取当前键值对里的值
		 * setValue(V):重新设置当前键值对里的值
		 */
		Set<Entry<Integer,String>> set=m.entrySet();
		for(Iterator<Entry<Integer,String>>it=set.iterator();it.hasNext();) {
			/*Entry<Integer,String> e=it.next();
			System.out.print(e.getKey()+"---->"+e.getValue()+"  ");*/
			System.out.println(it.next()+" ");
		}

 

Entry对象(键值对对象):在获得entrySet()返回的Set对象必须声明Entry<Key,Value>类型

HashMap:哈希算法 ,同样需要实现HashCode()和equals()方法

TreeMap:和TreeSet类似,红黑树结构,同样进行排序(次序由存入TreeMap的类的compare()或compareTo()方法决定,也就是说装入TreeMap的类必须实现HashCode(),equals(),compare()三个方法),同时TreeMap还有一个subMap()用来返回子树。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值