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

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());

		}

	}
}

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

时间: 2024-11-17 00:05:26

Java--Day13--------Map使用的相关文章

mybatis异常:Could not find result map java.util.Map 问题分析及解决

错误写法 <select id="queryXXXCount" resultMap="java.util.Map" > mybatis报出的异常日志: org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map at org.apache.ibatis.builder.MapperBuilderAssistant.setStat

Java中Map接口的遍历

package Test4; import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set; import org.junit.Test; public class MapBianLi { /* * 如何遍历Map * Set keySet()-->遍历Key * Collection values()-->遍历va

JAVA集合------Map (HashMap实现)

package java_util_map; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class MapTest01 { public static void main(String[] args) { /*  * Map是一个接口,HashMap是Map的一个实现类  

Java遍历Map集合方法

package testMap; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /**  * 循环遍历Map集合  *   * @author Administrator  *   */ pub

细说java中Map的两种迭代方式

以前对java中迭代方式总是迷迷糊糊的,今天总算弄懂了,特意的总结了一下,基本是算是理解透彻了. 1.再说Map之前先说下Iterator: Iterator主要用于遍历(即迭代访问)Collection集合中的元素,Iterator也称为迭代器.它仅仅只有三个方法:hasNext(),next()和remove() hasNext():如果仍有元素可以迭代,则返回 true.(换句话说,如果 next 返回了元素而不是 抛出异常,则返回 true). next():返回迭代的下一个元素. re

java中map集合的迭代

import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "a"); map.put(2, "b

java中Map的用法(HaspMap用法)

public interface Map<K,V> 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 1 import java.util.HashMap; 2 import java.util.Map; 3 4 5 public class Test1 { 6 7 public static void main(String[] args) { 8 Map map = new HashMap();//声明一个Map 9 map.put("s",

java按照Map值进行排序输出

package com.huawei.test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; public class

详解Java中Map用法

Map以按键/数值对的形式存储数据,这里要特别说明( Map.Entry,是Map的内部类,它用来描述Map中的键/值对). Map是一个接口,我们平时多用它的实现类HashMap. 用例如下: public static void main(String args[]) { HashMap hashmap = new HashMap(); hashmap.put("Item0", "Value0"); hashmap.put("Item1",

java基础-Map的静态初始化以及Map的遍历等.....................

1.map的静态初始化,以及map遍历的几种方法: package com.cy.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; public class Test { public static void main(String[] args) { Map<String, Integer> map = new HashMap