Java 的Map集合

 

Map接口中键和值——映射,可以通过键来获取值。

给定一个键和一个值,你可以将该值存储在一个Map对象之后,你可以通过键来访问对应的值。

当访问的值不存在的时候,方法就会抛出一个NoSuchEelementException异常

当对象的类型和Map里元素类型不兼容的时候,就会抛出一个ClassCastException异常

当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointException异常

当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常

常用方法

返回值

方法(形参)

说明

Void

Clear()

从此映射中移除所有映射关系(可选操作)

Boolean

containsKey(Object key)

如果此映射包含指定键的映射关系,则返回true

Boolean

containsValue(Object value)

如果此映射将一个或多个键映射到指定值,则返回true

Set

entrySet()

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

Boolean

Equals(Object o)

比较指定的对象与此映射是否相等

V

Get(Object key)

返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回null。

Int

HashCode

返回此映射的哈希码值。

Boolean

isEmpty()

如果此映射未包含键-值映射关系,则返回true

Set

keySet()

返回此映射中包含的键的Set视图

V

Put(K key,V value)

将指定的值与映射中的指定键关联(可选操作)

Void

PutAll(Map m)

从指定映射中将所有映射关系复制到此映射中(可选操作)

V

Remove(Object key)

如果存在一个键的映射关系,则将其从此映射中移除(可选操作)

Int

Size()

返回此映射中的键-值映射关系数

Collection

Values()

返回此映射中包含的值的Collection视图

  • Map接口示例代码
  • import java.util.HashMap;

    import java.util.HashSet;

    import java.util.Hashtable;

    import java.util.Iterator;

    import java.util.Map;

    import java.util.Set;

    /**

     * Map接口key-value根据一个对象查找对象。HashMap、HashTable、TreeMap是它的实现类。

     * @author ShiMei

     *

     */

    public class HashMapAndHashTable {

    public static void main(String[] args) {

    //如果是基本数据类型,声明的map的时候使用包装类

    Mapmap=new HashMap<>();

    // Mapmap1=new Hashtable<>();

    //添加数据put当key不存在时,添加key-value

     

    map.put(0, "str0");

    map.put(1, "str1");

    map.put(2, "str2");

    map.put(3, "str3");

    map.put(4, "str4");

    map.put(5, "str5");

    //put当key存在时,修改key对应的value

    map.put(5, "111111");

    map.put(6, null);

    map.put(7, null);

    // map.put(null,null);

    System.out.println(map);

     

     //移除

    // map.remove(5);

    System.out.println(map);

    //判断是否存在key

    System.out.println("是否存在key:5===>"+map.containsKey(5));

    //判断是否存在value

    System.out.println("是否存在Value:str4====>"+map.containsValue("str4"));

    //清空

    // map.clear();

    System.out.println("map是否为空:"+map.isEmpty());

    //输出

    // System.out.println(map);

  • //遍历

    SetkeysSet=map.keySet();

    Iteratoriterator=keysSet.iterator();

    while (iterator.hasNext()) {

    Integer intkey = iterator.next();

    System.out.println("key:"+intkey+"---->Value"+map.get(intkey));

    }

    // System.out.println("--------------------------");

    for (Iteratoriterator2 = keysSet.iterator(); iterator2.hasNext();) {

    int intKey = iterator2.next();

    System.out.println("key:"+intKey+"---->Value:"+map.get(intKey));

    }

    for (int intKey : keysSet) {

    System.out.println("key:"+intKey+"---->Value:"+map.get(intKey));

    }

    }

    }

  • TreeMap类
  •     与TreeSet类似的是,TreeMap中也提供了一系列根据key顺序访问key-value对的方法:

     

    返回值

    方法(形参)

    说明

    Map.Entry

    firstEntry()

    返回一个与此映射中的最小键-值映射关系;如果映射为空,则返回null

    K

    FirstKey()

    返回此映射中当前第一个(最低)键,

    Map.Entry

    lastEntry()

    返回与此映射中的最大键关联的键-值映射关系;如果映射为空,则返回null

    K

    higherEntry(K key)

    返回严格大于给定键的最小键;如果不存在这样的键,则返回null。

    Map.Entry

    lowerEntry(K key)

    返回一个键-值映射关系,它与严格小于给键的最大键关联;如果不存在这样的键,则返回null。

    K

    lowerKey(K key)

    返回严格小于给定键的最大键;如果不存在这样的键,则返回null。

    SortedMap

    headMap(K toKey)

    返回此映射的部分视图,其键值严格小于toKey。

    SortedMap

    subMap

    (K fromKey,K toKey)

    返回此映射的部分视图,其键值的范围从fromKey(包括)到toKey(不包括)

    SortedMap

    tailMap(K fromKey)

    返回此映射的部分视图,其键大于等于fromKey

    由于TreeMap是有序的,也支持Comparable和Comparator两种排序方式。TreeMap主要是Key值排序。

     

你可能感兴趣的:(Java)