集合map

Map集合

* 1.Map集合中存储的是一对儿元素。键和值。之间存在着对应关系。

* 2.必须要保证键的唯一性。

* 3.如果存储键相同,值会覆盖。

集合框架-Map-常见方法

put(K key, V value) 
    将指定的值与此映射中的指定键关联(可选操作)。

返回:

返回与 key 相关联的先前值,如果 key 没有映射关系,则返回 null(返回 null 可能还表示映射以前将null 与指定键关联)

 

get(Object key)

返回:

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


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

    @Test

    public void test1(){

        /*

         * 需求:将学号和对应的学生姓名进行存储。

         */

        Map<Integer,String> map = new HashMap<Integer,String>();

        //存储键值对。

        System.out.println(map.put(2,"小花"));//之前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null

        System.out.println(map.put(2,"麻子"));//小花,麻子之前是小花

        map.put(6,"赵六");

        map.put(1,"王五");

        System.out.println(map);//并没有排序,并且不是有序。2=麻子,“小花”被覆盖

        System.out.println(map.get(1));//王五

    }

测试结果:

    null

    小花

    {1=王五, 2=麻子, 6=赵六}

    王五 

集合框架-Map-keySet方法


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

Set底层用的是Map集合的Key

//    * 获取Map中的所有键值对。

//    * Map取出所有元素的原理:将map先转成set,再使用迭代器。

//    * 

    

    @Test

    public void test2(){

          Map<String,String> map = new HashMap<String,String>();

            

            map.put("zhangsan","北京");

            map.put("lisi","上海");

            map.put("wangwu","成都");

            map.put("zhaoliu","广州");

            System.out.println(map);

 

            //第一种方式:

            //获取map集合中的键的集合。keySet();

            Set<String> keySet = map.keySet();

            

            //通过set集合获取迭代器。

            Iterator<String> it = keySet.iterator();

            

            while(it.hasNext()){

                String key = it.next();

                String value = map.get(key);

                System.out.println(key+":"+value);

            }

    }

集合框架-Map-entrySet方法&values方法

接口 Map.Entry<K,V>。这个接口是非常重要的,以前Java培训的老师说过,Entry接口是Map接口的内部接口,因为要访问Map接口中的成员变量,所以就定在内部了,而且它和Map的关系是,先有Map接口中的成员变量,之后才有了Entry接口,表示成员变量之间的关系,所以就定在了里面。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

@Test

public void test3(){

    Map<String,String> map = new HashMap<String,String>();

    

    map.put("zhangsan","北京");

    map.put("lisi","上海");

    map.put("wangwu","成都");

    map.put("zhaoliu","广州");

    System.out.println(map);

//第二种方式:

    //获取map集合中所有的键值关系集合。entrySet,键值关系的类型是 Map.Entry.

    

    Set<Map.Entry<String, String>> entrySet = map.entrySet();

    

    //迭代器取出所有的关系对象。

    Iterator<Map.Entry<String, String>> it = entrySet.iterator();

    while(it.hasNext()){

        

        Map.Entry<String, String> me = it.next();

        String key = me.getKey();

        String value = me.getValue();

        

        System.out.println(key+"::"+value);

    }

}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

@Test

public void test4(){

    Map<String,String> map = new HashMap<String,String>();

    

    map.put("zhangsan","北京");

    map.put("lisi","上海");

    map.put("wangwu","成都");

    map.put("zhaoliu","广州");

    System.out.println(map);

    

    //第三种方式:获取值的集合。values();

    

    Collection<String> values = map.values();

    

    Iterator<String> it = values.iterator();

    while(it.hasNext()){

        String value = it.next();

        System.out.println(value);

    }

    

}

时间: 2024-10-01 07:57:43

集合map的相关文章

day19 集合MAp

Day 19 Map 一,虽然在Collection的下边,但是他在API里边确是单独的一个类; 二,Map 在存储的时候和collection 不一样: Collection只能存储一个对象(也称为单列集合); Map 是键值映射的,一一对应.(也称为双列集合); 三,map 接口中的方法: 常用的: 1,put (K,V)  将键值对存储到集合;  如果存储重复键,原来的键会被覆盖. 2,get(K)  传递键,返回这个键所对应的值(区分大小写);如果没有返回null 3,接口判断方法   

java018.双列集合Map

day18双列集合MapMap接口和Collection接口的区别: * Map是双列的,Collection是单列的 * Map的键唯一,Collection的子体系Set是唯一的,List体系可以存储重复值 * Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效 * a:添加功能  * V put(K key,V value):添加元素.   * 如果键是第一次存储,就直接存储元素,返回null   * 如果键不是第一次存在,就用值把以前的值替换掉,

黑马程序员--Java基础学习笔记【集合-Map】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Map 接口 Map 接口定义的集合,又称查找表 Map 接口和 Collection 接口没关系 Map 集合派系,存储映射键值对 不允许重复的键,每个键最多映射 1 个值 根据内部数据结构不同,Map 接口有多种实现类: 常用的有内部为 hash 表实现的 HashMap 和内部为排序二叉树实现的 TreeMap Map 接口和 Collection 接口的不同 Map 和 Collect

黑马程序员-java基础-集合Map

-----Java培训.Android培训.iOS培训..Net培训.期待与您交流! Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素,都是由键和值两个元素组成,键是不能有重复的,值是可以重复的,每一个键唯一指向一个值. Map体系 Map ——|hashtable: 底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.效率低,已被HashMap替代 ——|HashMap: 底层是哈希表数据结构,允许使用 null 值和 nu

Java集合Map接口与Map.Entry学习

Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) 添加.删除操作: Object put(Object key, Object value): 将互相关联的一个关键字与一个值放入该映像.如果该关键字已经存在,那么与此关键字相关的新值将取代旧值.方法返回关键字的旧值,如果关键字原先并不存在,则返回null Object remove(Object

【由浅入深理解java集合】(五)——集合 Map

前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍Map接口下的两个重要的集合实现类HashMap,TreeMap.关于Map的一些通用介绍,可以参考第一篇文章.由于Map与List.Set集合的某些特性有重合,因此观看本篇文章的会参考到之前的一些内容,最下方有链接.如果已经有这方面的基础,那么对Map的学习将会事半功倍. HashMap HashMap 是一个散列表,它存储的内容是键值对(key-value)映射. 既然要介绍HashMap,那么就顺带介绍HashTable

collection集合--Map

Map(键值对.键唯一.值不唯一) 核心: Map集合中存储的是键值对,键不能重复,值可以重复.根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值. l  Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储. l  Map中的集合,元素是成对存在的(理解为夫妻).每个元素由键与值两部分组成,通过键可以找对所对应的值. l  Collection中的集合称为单列集合,Map中的集合称为双列集合. l  需要注

JAVA集合------Map (HashMap实现)

package java_util_map; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class MapTest01 { public static void main(String[] args) { /*  * Map是一个接口,HashMap是Map的一个实现类  

JAVA学习--集合Map的使用

* Map接口  *         |-----HashMap:Map的主要实现类  *         |-----LinkedHashMap:使用链表维护添加进Map中的顺序.故遍历Map时,是按添加的顺序遍历的. *         |-----TreeMap:按照添加进Map中的元素的key的指定属性进行排序.要求:key必须是同一个类的对象! *                 针对key:自然排序   vs 定制排序  *         |-----Hashtable:古老的实现

Java从零开始学二十三(集合Map接口)

一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à value的形式存储在集合之中 二.常用方法 No. 方法或类 类型 描述 1 public void clear() 普通 清空Map集合 2 public boolean containsKey(Object key) 普通 判断指定的key是否存在 3 public boolean contai