Map接口与其子接口及子接口的实现类;

                                                 Map接口

前情概要:

存放Set集合元素的容器,必须要重写hashCode( )和equals( )方法,这样才可以保证Set集合中的元素不会重复。

凡是跟集合这块,要你存的话,equals( )方法是一定要写的;如果是跟Map或Set相关的话,除了写equals( )方法外,还要写hashCode( )方法。

上图中实线表示继承;虚线表示实现。

一个ksy-value对就是一个entry;所有的entry是一个set。

一、Map常用的集合元素:

 

1、Map集合的实现定义与在Map集合中的添加、删除操作:

package com.atguigu.Map00;

import java.util.HashMap;

import java.util.Map;



/*

 * Collection接口

 *

 * Map接口

 *                 |------HashMap:Map的主要实现类

 *                 |------LinkedHashMap:

 *                 |------TreeMap:

 *                 |------HashTable

 *                        |------Properties

 * */

import org.junit.Test;

/*

 * HashMap:

 * 1、key是用Set来存放的,不可重复。value是用Collection来存放的,可重复;

 *一个key-value对,是一个Entry。所有的Entry是用Set存放的,也是不可重复的。

 * 2、向HashMap中添加元素时,会调用key所在类的equals()方法,判断两个key是否相同。

 * 若相同则只能添加进后添加的那个元素。

 * */

public class TestMap {

       @Test

       public void testMap1() {

              Map map=new HashMap();    //1、Object put(Object key,Object value):向Map中添加一个元素

//          map.put(key, value);

              map.put("AA", 213);       //正是因为key是不可重复的所有Entry才不可重复。

              map.put("BB", 456);

              map.put("BB", 456);

              map.put(123, "CC");

              map.put(null, null);

              map.put(new Person("DD",23), 89);//put的两个Person实体类对象添加成功一个,因为key值不能相等。

              map.put(new Person("DD",23), 98);

              System.out.println(map.size());//结果为:4(因为put()里添加了一个key值重复的,只能算一个。)

              System.out.println(map);

/*

 * 结果:

5

{AA=213, BB=456, null=null, 123=CC, com.atguigu.Map00.Person@14c8c=98}

*/

              map.remove("AA");

              System.out.println(map.size());

              System.out.println(map);

//          map.clear();     //clear:清空Map集合

              System.out.println(map.get(123));//get:输出key值为123对应的value值;如果没有此key则返回null。

       }

}

2、元视图操作的方法:

//遍历Map集合中的key值用某某.keySet()”

//遍历Map集合中的value值用某某.values()”

//遍历Map集合中的key-value对用某某.entrySet()”

Map map=new HashMap();

//1、遍历key(".keySet"):输出的结果与添加进HashMap的顺序不同。

        Set set=map.keySet();

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值