博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSE Map的使用
阅读量:5128 次
发布时间:2019-06-13

本文共 3102 字,大约阅读时间需要 10 分钟。

1.Map概述

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

Map 中的 key 和  value都能够是不论什么引用类型的数据
Map 中的 key 用Set来存放。不同意反复,所以Map中的Set类型须要重写hashCode()和equals()方法,由于引用对象是通过这两个方法来保证Set的唯一性。
Map中的key 和 value之间存在单向一对一关系,即通过指定的key总能找到唯一的、确定的 value。

LinkedHashMap用一个链表维护加入进Map的顺序,遍历得到的顺序和加入顺序一致。

2.Map中的主要方法

package org.tizen.test;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 TestMapAPI()      {                //遍历得到的顺序和加入顺序不一致               Map map = new HashMap<>();        map.put("image", "/opt/image.jpg");        map.put("title", "setting");        map.put("size", 80);        m.put("image", "/opt/image1.jpg");//覆盖之前的map.put("image", "/opt/image.jpg");         System.out.println(map.size());//3        System.out.println(map.get("image"));        System.out.println(map.get("title"));        System.out.println(map.get("size"));        boolean b = map.containsValue("setting");           System.out.println(b);//true        }}

 

@Test	/*	 * * 元视图操作的方法:Set keySet() Collection values() Set entrySet()	 */	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对 by 增强for循环遍历		Set entry1 = m.entrySet();		for (Object o : entry1) {			// need cast			Map.Entry me = (Map.Entry) o;			System.out.println(me.getKey() + ":" + me.getValue());		}		// 4.遍历key-value对 by iterator		Set entrySet = m.entrySet();		Iterator iterator = entrySet.iterator();		while (iterator.hasNext()) {			Map.Entry entry2 = (Map.Entry) iterator.next();			System.out.println(entry2.getKey() + ":" + entry2.getValue());		}	}

@Test	// 自然排序	public void test3() {		Map map = new LinkedHashMap();		map.put("AA", 213);		map.put("BB", 45);		map.put(123, "CC");		map.put(null, null);		map.put("AABB", 89);		Set set1 = map.keySet();		for (Object obj : set1) {			System.out.println(obj + ":" + map.get(obj));		}	}

@Test	public void test4() {		Map map = new LinkedHashMap();		map.put("AA", 213);		map.put("BB", 45);		map.put(123, "CC");		map.put(null, null);		Set
set = map.entrySet(); Iterator it = set.iterator(); while (it.hasNext()) { Map.Entry m = (Map.Entry) it.next(); System.out.println(m.getKey() + " = " + m.getValue()); } }

转载于:https://www.cnblogs.com/cxchanpin/p/7205304.html

你可能感兴趣的文章
那些年,那些书
查看>>
面向对象六大基本原则的理解
查看>>
注解小结
查看>>
java代码编译与C/C++代码编译的区别
查看>>
Bitmap 算法
查看>>
转载 C#文件中GetCommandLineArgs()
查看>>
list control控件的一些操作
查看>>
精读《useEffect 完全指南》
查看>>
SNF快速开发平台MVC-EasyQuery-拖拽生成SQL脚本
查看>>
DrawerLayout实现双向侧滑
查看>>
CentOS下同步时间并写入CMOS
查看>>
NLog简单使用
查看>>
MySQL入门很简单-触发器
查看>>
LVM快照(snapshot)备份
查看>>
Struts2 - 与 Servlet 耦合的访问方式访问web资源
查看>>
绝望的第四周作业
查看>>
一月流水账
查看>>
数论四大定理
查看>>
npm 常用指令
查看>>
C#基础知识面试经典[整理]
查看>>