第三次学JAVA再学不好就吃翔(part91)--Map接口

学习笔记,仅供参考,有错必纠


Map接口


Map集合概述


Map是java.util包下的一个接口,它将键映射到值的对象,且一个映射不能包含重复的键,每个键最多只能映射一个值。


Map接口和Collection接口的不同:

  • Map是双列的,Collection是单列的;
  • Map的键唯一,Collection的子体系Set是唯一的;
  • Map集合的数据结构值针对键有效,跟值无关,Collection集合的数据结构是针对元素有效。

Map集合的功能概述


  • 添加功能
V put(K key, V value)

将指定的值与此映射中的指定键关联(可选操作)。简而言之,添加元素,如果键是第一次存储,就直接存储元素,并返回null,如果键不是第一次存储,就用值把以前的值替换掉,返回以前的值。


  • 删除功能
void clear()

从此映射中移除所有映射关系(可选操作),此调用返回后,该映射将为空。简而言之,移除所有的键值对元素


V remove(Object key)

如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更正式地说,如果此映射包含针对满足 key==null ? k==null :key.equals(k))的键 k 到值 v 的映射关系,则移除该映射关系。简而言之,根据键删除键值对元素,并把值返回。


  • 判断功能

boolean containsKey(Object key)

如果此映射包含指定键的映射关系,则返回 true。更正式地说,当且仅当此映射包含针对满足 key==null ? k==null : key.equals(k)的键 k 的映射关系时,返回 true。简而言之,判断集合是否包含指定的键,包含则返回true.


boolean containsValue(Object value)

如果此映射将一个或多个键映射到指定值,则返回 true。更正式地说,当且仅当此映射至少包含一个对满足 value==null ? v==null : value.equals(v)的值 v 的映射关系时,返回 true。简而言之,判断集合是否包含指定的值,包含则返回true.


boolean isEmpty()

如果此映射未包含键-值映射关系,则返回 true。 简而言之,判断集合是否为空。


  • 获取功能
Set<Map.Entry<K,V>> entrySet()

返回此映射中包含的映射关系的 Set 视图。


V get(Object key)

返回指定键所映射的值,如果此映射不包含该键的映射关系,则返回 null。 简而言之,根据键获取值。


Set<K> keySet()

返回此映射中包含的键的 Set 视图。简而言之,获取集合中所有键的集合。


Collection<V> values()

返回此映射中包含的值的 Collection 视图。简而言之,获取集合中所有值的集合。


  • 长度功能
int size()

返回此映射中的键-值映射关系。如果该映射包含多个 Integer.MAX_VALUE 元素,则返回 Integer.MAX_VALUE。 简而言之,返回集合中的键值对的个数。


举个例子


package com.guiyang.bean;

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

public class Demo1_Map {

	public static void main(String[] args) {
		demo1();
		System.out.println("--------");
		demo2();
		System.out.println("--------");
		Map<String, Integer> map = new HashMap<>();
		Integer i1 = map.put("Ada", 21);
		Integer i2 = map.put("Petter", 20);
		Integer i3 = map.put("Jack", 19);
		Integer i4 = map.put("Black", 26);
		Integer i5 = map.put("Jack", 20);
		
		Collection<Integer> collection = map.values();
		
		System.out.println(collection);
		System.out.println(map.size());

	}

	private static void demo2() {
		Map<String, Integer> map = new HashMap<>();
		Integer i1 = map.put("Ada", 21);
		Integer i2 = map.put("Petter", 20);
		Integer i3 = map.put("Jack", 19);
		Integer i4 = map.put("Black", 26);
		Integer i5 = map.put("Jack", 20);

		System.out.println(map.containsKey("Ada"));
		System.out.println(map.containsValue(25));
	}

	private static void demo1() {
		Map<String, Integer> map = new HashMap<>();
		Integer i1 = map.put("Ada", 21);
		Integer i2 = map.put("Petter", 20);
		Integer i3 = map.put("Jack", 19);
		Integer i4 = map.put("Black", 26);
		Integer i5 = map.put("Jack", 20);
		
		System.out.println(map);
		
		System.out.println(i1);
		System.out.println(i2);
		System.out.println(i3);
		System.out.println(i4);
		System.out.println(i5);
	}

}

输出:

{Petter=20, Black=26, Jack=20, Ada=21}
null
null
null
null
19
--------
true
false
--------
[20, 26, 20, 21]
4

猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/107442373