集合-Map

7 篇文章 0 订阅

Map是一个双列集合,也就是我们常说的键值对。Map是按照键(key)存储元素的容器,Map中不能有重复的键(个人理解,可以把Map中的key理解为表中的主键),Map中我们常用的是HashMap和TreeMap。

1、set<K>keySet() //返回所有的key对象的Set集合。

2、Collection<V>values()       //获取所有的值,单不能获取到key对象

3、Set<Map.Entry<k,v>>entrySet() 将map集合中的键值映射关系打包成给一个对象

HashMap

底层是哈希表数据,线程是不同步的,可以存入null值,null值。

获取HashMap键对应的值的方法:

方式一

         将Map中的key转换成Set集合,通过Set的迭代器取出Set集合中的每一个key,在通过get(Objectkey)方法获取键对应的值。

package CollectionDemo;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapDemo {

	public static void main(String[] args) {
		Map<Integer,String> map=new HashMap<Integer,String>();
		map.put(1, "aaa");
		map.put(2,"bbb");
		map.put(3,"ccc");
		
		//使用keyset
		Set<Integer> ks=map.keySet();
		Iterator<Integer> it=ks.iterator();
		while(it.hasNext())
		{
			Integer key=it.next();
			String value=map.get(key);
			System.out.println("key="+key+" value="+value);
		}
	}
}


方式二

         通过values获取所有值,但是不能通过value来获取key对象

package CollectionDemo;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapDemo {

	public static void main(String[] args) {
		Map<Integer,String> map=new HashMap<Integer,String>();
		map.put(1, "aaa");
		map.put(2,"bbb");
		map.put(3,"ccc");
		
		//使用values
		Collection<String> vs=map.values();
		Iterator<String> it=vs.iterator();
		while(it.hasNext())
		{
			String value=it.next();
			
			System.out.println("value="+value);
		}
	}
}


方式三

         将Map集合中的键和值映射关系打包为一个对象(Map.Entry),将改对象存入Set集合,Map.Entry是一个对象,那么该对象具备的getKey,getValue获取键和值。

package CollectionDemo;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapDemo {

	public static void main(String[] args) {
		Map<Integer,String> map=new HashMap<Integer,String>();
		map.put(1, "aaa");
		map.put(2,"bbb");
		map.put(3,"ccc");
		
		Set<Map.Entry<Integer,String>> es=map.entrySet();
		Iterator<Map.Entry<Integer, String>> it=es.iterator();
		while(it.hasNext())
		{
			Map.Entry<Integer, String> en=it.next();
			Integer key=en.getKey();
			String value=en.getValue();
			System.out.println("key="+key+" value="+value);
		}
	}
}

TreeMap

TreeMap可以对集合中的键进行排序。排序方式和TreeSet相同。一种是让元素自身具备比较性,另一种是让容器具备比较性。

注:Set的元素不可重复,Map的键不可重复,如果存入重复的元素,Set中重复元素不能存入,add方法会返回false,Map的重复键值将覆盖就键,将旧值返回。



评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值