码迷,mamicode.com
首页 > 编程语言 > 详细

Java--Day13--------Map使用

时间:2015-07-16 09:57:14      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

1.Map概述

Map与Collection并列存在,用来保存具有映射关系的数据:Key-Value

Map 中的 key 和  value都可以是任何引用类型的数据
Map 中的 key 用Set来存放,不允许重复,所以Map中的Set类型需要重写hashCode()和equals()方法,因为引用对象是通过这两个方法来保证Set的唯一性。
Map中的key 和 value之间存在单向一对一关系,即通过指定的key总能找到唯一的、确定的 value。

技术分享

上图是Map体系的继承树,最常用的是HashMap,LinkedHashMap用一个链表维护添加进Map的顺序,遍历得到的顺序和添加顺序一致。


技术分享



2.Map中的主要方法

package org.tizen.moipservice;

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

import org.junit.Test;

/*
 * 
		Object put(Object key,Object value)  向Map中添加一个key以及value
		Object remove(Object key) 删除制定的 key以及对应的value,即删除制定的key-value对
		void putAll(Map t)
		void clear()
		Object get(Object key)  获取制定的key的value值,如无,返回null
		boolean containsKey(Object key)
		boolean containsValue(Object value)
		int size()
		boolean isEmpty()
		boolean equals(Object obj)

 */
public class TestMain {
	
	@Test
	public void Test1()
	{
		Map m = new HashMap();
		m.put("123a",97);
		m.put("b",98);
		m.put("AbC", 1221);
		m.put("b", 101);
		m.put("AA", 101);
		System.out.println(m.size());
		System.out.println(m);
		System.out.println(m.remove("123a"));//remove返回要删除的对象,如果没有,返回null
		System.out.println(m);
		Integer i =  (Integer )m.get("b");
		System.out.println(i);
		boolean b = m.containsValue(101);//判断是否有包含相同的value值,这儿value对应的类型需要重写equals方法
		System.out.println(b);
	}
	
	/*
	 * 	元视图操作的方法:
				Set keySet()
				Collection values()
				Set entrySet()

	 */
	@Test
	public void Test2()
	{
		Map m = new HashMap();
		m.put("123a",97);
		m.put("b",98);
		m.put("AbC", 1221);
		m.put(null,1);
		//1.得到Map的KeySet,遍历
		Set s = m.keySet();
		System.out.println("遍历set");
		for(Object o:s)
		{
			System.out.println(o);
		}
		
		//2.遍历values
		Collection c =  m.values();
		System.out.println("增强for循环遍历values");
		for(Object o:c)
		{
			System.out.println(o);
		}
		System.out.println("迭代器遍历values");
		Iterator i = c.iterator();
		while(i.hasNext())
		{
			System.out.println(i.next());
		}
		
		//3.遍历key-value对
		Set s1 = m.entrySet();
		for(Object o:s1)
		{
			Map.Entry entry = (Map.Entry)o;
			System.out.println(entry.getKey()+"    "+entry.getValue());

			
		}
		
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Java--Day13--------Map使用

标签:

原文地址:http://blog.csdn.net/u014338577/article/details/46899355

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!