Java集合框架:Map集合

Map集合通过键值对(key-value)的形式来存储数据。
Map中,key可以为任意类型,实际开发建议使用String , value也可以是任意类型;
Map集合通过键获取值,查询速度非常快。

Map的实现类:
HashMap(使用频率最高的) (无序)
TreeMap(自然升序)
HashTable(无序)
三个实现类使用步骤类似,我们以HashMap为例进行讲解;

使用步骤:
创建对象: HashMap hm=new HashMap();
往集合中添加数据:put(K key, V value);
根据键获取值:get(Object key)
根据key删除指定数据:remove(Object key)

注意:Map里面key是不可以重复的,当key重复时,后存入的数据会覆盖前面的数据,Map中的值可以重复。

package cn.xtnotes.jinjie;
import java.util.HashMap;
public class Map_1 {

	public static void main(String[] args) {
	  HashMap hs=new HashMap();
	  
	  hs.put("1001","张三");//往集合中添加数据
	  hs.put("1002","张三");
	  hs.put("1003","李四");
	  
	  System.out.println(hs.get("1001"));//根据键获取值
	  
	  hs.remove("1002"); //删除指定数据
	  
	  System.out.println(hs.size());
	}
}

运行结果


Map接口中的常用方法
boolean containsKey(Object key):判断是否包含指定的key
boolean containsValue(Object value):判断是否包含指定的value
get(Object key):根据指定的key来获取对应的value
boolean isEmpty():判断集合是否为空
keySet():Map中所有key的集合
values():返回Map中所有的value的集合
put(K key, V value):把指定的key-value存入Map集合**
putAll(Map m):把一个Map集合存入指定的Map中
remove(Object key):根据key在Map中删除指定的key-value组合
int size():Map集合中key-value的长度

package cn.xtnotes.jinjie;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class Map_2 {

	public static void main(String[] args) {
		HashMap hs=new HashMap();
		  
		  hs.put("1001","张三");
		  hs.put("1002","张三");
		  hs.put("1003","李四");
		  
		  Set a=hs.keySet();
		  Iterator it=a.iterator();
		  while(it.hasNext()) {
			 // System.out.println(it.next());//打印所以键
			  System.out.println(hs.get(it.next()));//打印所以value
		  }
		  System.out.println(hs.containsKey("1001"));//判断是否含有指定键(布尔)
		  System.out.println(hs.containsValue("张三"));//判断是否含有指定Value(布尔)
		  System.out.println(hs.isEmpty());//判断集合是否为口空
	}
}

运行结果


HashMap  Hashtable  treeMap区别
1.HashMap线程不安全,无序,他允许Key值出现一次null,Value值允许Null;
2.Hashtable线程安全,无序,他不仅实现了Map接口也实现了Dictionary接口,他的key值与Value值都不允许出现Null;
3.treeMap线程不安全,默认按照键的自然顺序进行升序排序,Key不允许null,Value值允许Null;

运行截图

阅读剩余
THE END