Map接口

一、概念


Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。


Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。


二、常用方法


put方法:将指定的键与值对应起来,并添加到集合中


Map<String,String> map=new HashMap<String,String>();
map.put("星期一","Monday");
map.put("星期日","Sunday");

get方法:获取指定键(key)所对应的值(value)


String value=map.get("星期一");


remove方法:根据指定的键(key)删除元素,返回被删除元素的值(value)


map.remove("星期一");

三、分类


HashMap:一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。


HashTable:它不允许记录的键或者值为空


LinkedHashMap:保存了插入时的顺序。


TreeMap能够把它保存的记录根据键排序,默认是按升序排序。


四、遍历


main方法:


public static void main(String[] args) {
		Map<Person,String> map=new HashMap<Person,String>();
		map.put(new Person("张琳",20),"北京");
		map.put(new Person("张三",21),"天津");
		map.put(new Person("张四",22),"上海");

1.Iterator .keySet()


                //用Set集合接受"键"类型
		Set<Person> set=map.keySet();
		//用迭代器进行遍历
		Iterator<Person> it=set.iterator();
		while(it.hasNext()){
			//.next()方法获得"键"
			Person p=it.next();
			//.get()方法获得"值"
			String place=map.get(p);
			System.out.println(p.toString()+"--"+place);
		}

2.for .keySet()


                //增强for:键:map.keySet()
		for (Person person : map.keySet()) {
			System.out.println(person.toString()+"**"+map.get(person));
		}

3.Iterator .entrySet()


                //用Set集合接受"键值关系"类型
		Set<Entry<Person, String>> entrySet = map.entrySet();
		//用迭代器进行遍历
		Iterator<Entry<Person,String>> entryIt=entrySet.iterator();
		while(entryIt.hasNext()){
			//.next()方法获得"键值关系"
			Entry<Person,String> entry=entryIt.next();
			//.getKey()获得"键"
			Person per=entry.getKey();
			//.getValue()获得"值"
			String str=entry.getValue();
			System.out.println(per+"++"+str);
		}


4.for .entrySet()


                //增强for:键值关系:map.entrySet()
		for (Entry<Person, String> entry : entrySet) {
			//.getKey()获得"键"
			Person per=entry.getKey();
			//.getValue()获得"值"
			String str=entry.getValue();
			System.out.println(per+"&&"+str);
		}

.keySet()方法:获得键


.entrySet()方法:获得键值关系


五、小结


Map有四个不同的子类,不过基本功能是一致的,HashMap可以速度快,使用多;HashTable速度慢;LinkedHashMap保持有序;TreeMap根据键进行排序。遍历的方法有两种:增强for和Iterator,底层的逻辑是一致的。获得键值方法有一种:一种是.keySet()获得键,然后根据键获得值,另一种是.entrySet()获得键值关系,然后再根据.getKey()和.getValue()获得键和值。


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值