栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

6、集合框架Map接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

6、集合框架Map接口

1、Map接口
public interface Map
将键映射到值的对象,一个映射不能包含重复的键;每个键最多只能映射到一个值。

void clear()清空Map集合中的内容
boolean containsKey(Object key)判断集合中是否存在指定的key
boolean containsValue(Object value)判断集合中是否存在指定的value
Set> entrySet()将Map接口变为Set集合
V get(Object key)根据key找到其对应的value
boolean isEmpty()判断是否为空
Set keySet()将全部的key变为Set集合
Collection values()将全部的value变为Collection集
V put(K key,V value)向集合中增加内容
void putAll(Map m)增加一组集合
V remove(Object key)根据key删除内容
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;


public class MapDemo {
	
	private static void hashMap() {
		Map map=new HashMap();
		map.put(1, "Tom");
		map.put(2, "lily");
		map.put(3, "viec");
		map.put(4, "Bin");
		
		System.out.println("size="+map.size());
		//从Map中取值
		System.out.println(map.get(1));//通过key来取值
		
		//Map遍历
		Set> entrySet=map.entrySet();
		for(Entry e:entrySet) {
			System.out.println(e.getKey()+"->"+e.getValue());
		}
		System.out.println("·················");
		
		//遍历建
		Set kyes=map.keySet();
		for(Integer i:kyes) {
			String value=map.get(i);
			System.out.println(i+"->"+value);
		}
		System.out.println("·················");
		
		//遍历值
		Collection values=map.values();
		for(String value:values) {
			System.out.println(value);
		}
		System.out.println("·················");
		
		//forecah
		map.forEach((key,value)->System.out.println(key+"->"+value));
		
	}

	public static void main(String[] args) {

		hashMap();
	}

}
size=4
Tom
1->Tom
2->lily
3->viec
4->Bin
1->Tom
2->lily
3->viec
4->Bin
Tom
lily
viec
Bin
1->Tom
2->lily
3->viec
4->Bin


2、HashMap
public class HashMap extends AbstractMap
implements Map, Cloneable, Serializable
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。
(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映
射的顺序,特别是它不保证该顺序恒久不变。

 

3、Hashtable
public class Hashtable extends Dictionary
implements Map, Cloneable, Serializable
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。
为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。

4、linkedHashMap
public class linkedHashMap
extends HashMap implements Map
Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处
在于,后者维护着一个运行于所有条目的双重链接列表。
5、TreeMap
public class TreeMap extends AbstractMap
implements NavigableMap, Cloneable, Serializable
基于红黑树(Red-Black tree)的 NavigableMap 实现。该映射根据其键的自然顺序进行排序,
或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。

	private static void treeMap() {
		Map map=new TreeMap();
		//map.put("one", "lily");
		//map.put("tow", "Tom");
		//map.put("three", "Bin");
		//map.forEach((key,value)->System.out.println(key+"->"+value));
		
		
		//自定义Dog class中要实现Comparable
		Map dogs=new TreeMap<>();
		dogs.put(new Dog(1,"2ha",3),"dog1");
		dogs.put(new Dog(2,"wangwang",2),"dog2");
		dogs.put(new Dog(3,"hsq",4),"dog3");
		dogs.forEach((key,value)->System.out.println(key+"->"+value));
		//输出
		//Dog [id=1, name=2ha, age=3]->dog1
        //Dog [id=2, name=wangwang, age=2]->dog2
		//Dog [id=3, name=hsq, age=4]->dog3
		
	}
	
	
	private static void linkedHashMap() {
		Map table=new linkedHashMap();
		table.put("one", "lily");
		table.put("tow", "Tom");
		table.put("three", "Bin");
		table.forEach((key,value)->System.out.println(key+"->"+value));
	}
	
 
	private static void hashtable() {
		Map table=new Hashtable<>();
		table.put("one", "lily");
		table.put("tow", "Tom");
		table.put("three", "Bin");
		
		table.forEach((key,value)->System.out.println(key+"->"+value));
	}

1.8 Map接口的新方法:
在JDK8中Map接口提供了一些新的便利的方法。因为在本文中我所提到的所有Map方法都是以
默认值方法的方式实现的,所以现有的Map接口的实现可以直接拥有这些在默认值方法中定
义的默认行为,而不需要新增一行代码。
getOrDefault(Object, V)
putIfAbsent(K,V)
remove(Object key, Object value)
replace(K,V)
replace(K,V,V)
compute(K key, BiFunction remappingFunction)
computeIfPresent(K key, BiFunction remappingFunction)
merge(K key, V value, BiFunction remappingFunction)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462995.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号