Map常用子类与Map接口中的常用方法

Map常用子类
通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。
HashMap<K,V>∶存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
.LinkedHashMap<K,V> :HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
tips : Map接口中的集合都有两个泛型变量<KV>,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量<K,V>的数据类型可以相同,也可以不同。

.java.util. Map<k, v>集合Map集合的特点∶

1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)

2.Map集合中的元素,key和valuie的数据类型可以相同,也可以不同

3.Aap集合中的元素,key是不允许重复的, value是可以重复的

4 .Map集合中的元素,key和value是——对应

java.util.HoshMap<k, v>集合implements Map<k, v>接口HashMap集合的特点:

1.HashMap集合底层是哈希表:查询的速度特别的快

DxI.8之前:数组+单回链表

DK1.8之后:数组+里向链表/红黑树(链表的长度超过8):提高查询的速度2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致java.util.LinkedHashAap<k , v>集合extends HashAap<k , v>集合

linkedHashMap的特点:

1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)

2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的

 


Map接口中的常用方法

Map接口中定义了很多方法,常用的如下:

public v put(K key,v value):把指定的键与指定的值添加到Map集合中。

public v remove(0bject key) :把指定的键所对应的键值对元素在Map集合中删除,返回被删除元素的值。public v get(object key)根据指定的键,在Map集合中获取对应的值。

boolean containsKey(object key)判断集合中是否包含指定的键。|public Set<K> keySet():获取Map集合中所有的键,存储到Set集合中。

public Set<Map.Entry<K,v>> entrySet():获取到Map集合中所有的键值对对象的集合(Set集合)。

package Demo_Map;

import java.util.HashMap;

/*
java.util. Map<k, v>集合Map集合的特点∶
1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
2.Map集合中的元素,key和valuie的数据类型可以相同,也可以不同
3.Aap集合中的元素,key是不允许重复的, value是可以重复的
4 .Map集合中的元素,key和value是——对应
java.util.HoshMap<k, v>集合implements Map<k, v>接口HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别的快
DxI.8之前:数组+单回链表
DK1.8之后:数组+里向链表/红黑树(链表的长度超过8):提高查询的速度2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致java.util.LinkedHashAap<k , v>集合extends HashAap<k , v>集合
linkedHashMap的特点:
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
 */
public class Demo01_Map_01 {
    public static void main(String[] args) {
        show01();
    }
    //public V remove(Object key):把指定的键所对应的键值对元素在Nap集合中删除,返回被删除元素的值。[
                //返回值:v
    //key存在, v返回被删除的值key不存在, v返回null
    private static void show01() {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("西施",175);
        map.put("",180);
        map.put("戈雅",175);
        System.out.println(map);

        Integer wzj = map.remove("王昭君");
        System.out.println("v1"+wzj);
        System.out.println(map);

        int v1 =map.remove("钟无艳"); //自动拆箱  NullPointerException
        System.out.println("v2:"+v1);
        System.out.println(map);
    }

    /*
    public V put(K key,v value):把指定的键与指定的值添加到Map集合中。
   返回值:v
存储键值对的时候,key不重复,返回值v是null
存储键值对的时候,key重复,会使用新的value替换map中重复的vaLue,返回被替换的vaLue值
     */
    private static void show() {
        //创建Map集合对象,多态
        HashMap<String, String> map = new HashMap<>();
        String put1 = map.put("李晨", "范冰冰");
        System.out.println("v1"+put1);
        String put2 = map.put("李晨", "范冰冰");
        System.out.println("v2"+put2);

        System.out.println(map);

        map.put("","蔡文姬");
        map.put("吕布","貂蝉");
        map.put("刘备","孙尚香");

        System.out.println(map);
    }
}

 

package Demo_Map;

import java.util.HashMap;

/*
java.util. Map<k, v>集合Map集合的特点∶
1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
2.Map集合中的元素,keyvaluie的数据类型可以相同,也可以不同
3.Aap集合中的元素,key是不允许重复的, value是可以重复的
4 .Map集合中的元素,keyvalue——对应
java.util.HoshMap<k, v>集合implements Map<k, v>接口HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别的快
DxI.8之前:数组+单回链表
DK1.8之后:数组+里向链表/红黑树(链表的长度超过8):提高查询的速度2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致java.util.LinkedHashAap<k , v>集合extends HashAap<k , v>集合
linkedHashMap的特点:
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
*/
public class Demo01_Map_01 {
public static void main(String[] args) {
show01();
}
//public V remove(Object key):把指定的键所对应的键值对元素在Nap集合中删除,返回被删除元素的值。[
//返回值:v
//key存在, v返回被删除的值key不存在, v返回null
private static void show01() {
HashMap<String, Integer> map = new HashMap<>();
map.put("西施",175);
map.put("",180);
map.put("戈雅",175);
System.out.println(map);

Integer wzj = map.remove("王昭君");
System.out.println("v1"+wzj);
System.out.println(map);

int v1 =map.remove("钟无艳"); //自动拆箱 NullPointerException
System.out.println("v2:"+v1);
System.out.println(map);
}

/*
public V put(K key,v value):把指定的键与指定的值添加到Map集合中。
返回值:v
存储键值对的时候,key不重复,返回值vnull
存储键值对的时候,key重复,会使用新的value替换map中重复的vaLue,返回被替换的vaLue
*/
private static void show() {
//创建Map集合对象,多态
HashMap<String, String> map = new HashMap<>();
String put1 = map.put("李晨", "范冰冰");
System.out.println("v1"+put1);
String put2 = map.put("李晨", "范冰冰");
System.out.println("v2"+put2);

System.out.println(map);

map.put("","蔡文姬");
map.put("吕布","貂蝉");
map.put("刘备","孙尚香");

System.out.println(map);
}
}
posted @ 2022-07-06 20:53  zj勇敢飞,xx永相随  阅读(65)  评论(0编辑  收藏  举报