99、Map(映射):Map 的keySet()方法会返回 key 的集合,因为 Map 的键是不能重复的,因此 keySet()方法的返回类型是 Set;而 Map 的值是可以重复的,因此 values()方法的返回类型是 Collection,可以容纳重复的元素。

100、Map注意事项:

A)

public class TestMap {

    publicstatic void main(String[] args) {

        HashMap map = new HashMap();

        map.put("a","zhangsan");

        map.put("b","lisi");

        map.put("c","wangwu");

        map.put("a","cuijun");

        //System.out.println(map);

        String value = (String)map.get("a");

        System.out.println(value);

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

        Stringvalue1 = (String)map.get("d");

        System.out.println(value1);

    }

}

由上述代码可知键不可以重复。

B)

public classTestMap1 {

    publicstatic void main(String[] args) {

        HashMap map = new HashMap();

        String str = newString("cuijun");

        map.put("a",str);

        map.put("b",str);

        //map.put("a", "cuijun");

        //map.put("b", "cuijun");

        System.out.println(map);

    }

}

由上述代码可知值可以重复。

注:因此 keySet()方法的返回类型是 Set,values()方法的返回类型是 Collection。

101、关于HashSet的使用:

A)

public class TestMap2 {

    publicstatic void main(String[] args) {

        HashMap map = new HashMap();

        map.put("a","aa");

        map.put("b","bb");

        map.put("c","cc");

        map.put("d","dd");

        Set keys = map.keySet();//使用keySet()方法,获取键的集合

        for(Iterator it =keys.iterator(); it.hasNext();){

            String key = (String)it.next();

            String value = (String)map.get(key);

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

        }

    }

}

b)

publicclass TestMap3 {

    publicstatic void main(String[] args) {

        HashMap map = new HashMap();

        map.put("a","aa");

        map.put("b","bb");

        map.put("c","cc");

        map.put("d","dd");

        Set keys = map.entrySet();//使用entrySet()方法,获取entry对象的集合

        for(Iterator it =keys.iterator(); it.hasNext();){

            Map.Entry maps = (Map.Entry)it.next();//Map.Entry:Entry是Map的一个内部类。具体详情请参考API。

         /*

         * 关于内部类的简单介绍:内部类是定义在类内部的类

         * public class A{

         *      publicclass B{}

         * }

         * A a = new A();

         * A.B b = new A.B();

         */

            String key = (String)maps.getKey();

            String value = (String)maps.getValue();

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

        }

    }

}

附Map.Entry的API简介:

Map.entrySet方法返回映射的 collection视图,其中的元素属于此类。获得映射项引用的唯一方法是通过此 collection视图的迭代器来实现。这些Map.Entry对象仅在迭代期间有效;更确切地讲,如果在迭代器返回项之后修改了底层映射,则某些映射项的行为是不确定的,除了通过setValue在映射项上执行操作之外。

C)通过使用HashSet判断输入值的个数

publicclassTestMap4 {

    publicstatic void main(String[] args) {

        HashMap map = new HashMap();

        for(int i = 0; i < args.length; i++){

            if(map.get(args[i]) ==null){

                map.put(args[i],newInteger(1));

            }else{

                Integer value = (Integer)map.get(args[i]);

                value =  new Integer(value.intValue()+1);

                map.put(args[i],value);

            }

        }

        Set keys = map.keySet();

        for(Iterator it =keys.iterator(); it.hasNext();){

            String key = (String)it.next();

            Integer value = (Integer)map.get(key);

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

        }

    }

}

=====================关于HashSet其实运行下这些代码,参考着API是很容易理解的=============

HashMap的使用方法及注意事项的更多相关文章

  1. Linux任务调度进程crontab的使用方法和注意事项

    参考文章:Linux任务调度进程crond命令的使用方法和注意事项 一.crond简介 概念 crond的概念和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系 ...

  2. hashMap的get()方法,错用并发造成cpu和负载高

    一次线上问题的解决 线上发现服务cpu使用达到98%,负载高达200多,64核心cpu,下面介绍解决过程: 1.top命令查出占用cpu高的进程pid 2.使用jstack -l pid >du ...

  3. Swift基础--Swift中的分类以及在分类中扩展init方法的注意事项

    Swift中的分类 1.创建一个空的swift文件 2.关键字extension,格式: extension 要扩展的类名 {} extension UIButton { } Swift中扩展init ...

  4. C++ 开发OCX 的方法和注意事项

    C++ 开发OCX 的方法和注意事项 前言 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件.ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精 ...

  5. Java基础:HashMap中putAll方法的疑惑

    最近回顾了下HashMap的源码(JDK1.7),当读到putAll方法时,发现了之前写的TODO标记,当时由于时间匆忙没来得及深究,现在回顾到了就再仔细思考了下 @Override public v ...

  6. java字符流操作flush()方法及其注意事项

    java字符流操作flush()方法及其注意事项   flush()方法介绍 查阅文档可以发现,IO流中每一个类都实现了Closeable接口,它们进行资源操作之后都需要执行close()方法将流关闭 ...

  7. jdk1.8 HashMap的keySet方法详解

    我在看HashMap源码的时候有一个问题让我产生了兴趣,那就是HashMap的keySet方法,没有调用HashMap的有关数据的任何方法就能获取到map的所有的键,他是怎么做到的,然后我就通过模拟k ...

  8. Java编程中获取键盘输入实现方法及注意事项

    Java编程中获取键盘输入实现方法及注意事项 1. 键盘输入一个数组 package com.wen201807.sort; import java.util.Scanner; public clas ...

  9. HashMap的put方法返回值问题

    API文档中的描述: 先看一个例子 Map<Character, Integer> map = new HashMap<Character, Integer>(); Syste ...

随机推荐

  1. crtmpserver通常使用基本类演示

    以前我们做了分析过程,这一次,我们都参与了类做梳子,两个可以一起关注一下一起合并,整个方案的实施是有帮助. BaseClientApplication APP基类,一切APP都基于这个类 Stream ...

  2. jQuery.extend 和 jQuery.fn.extend

    1.jQuery.extend 我们先把jQuery看成了一个类,这样好理解一些.jQuery.extend(),是扩展的jQuery这个类. 假设我们把jQuery这个类看成是人类,能吃饭能喝水能跑 ...

  3. URLScan安装及配置(转)

    安装 URLScan 要安装 URLScan,请访问下面的 Microsoft Developer Network (MSDN) 网站: http://msdn2.microsoft.com/en-u ...

  4. AngularJs练习Demo10 ngInclude

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  5. nginx和apache的特点优点和使用场景

    Apache   Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.   Apache源于 ...

  6. 由MyEclipse内存不足谈谈JVM内存设置

    转自:http://www.javatang.com/archives/2007/12/03/1653250.html 如果没有进行设置的话,在使用MyEclipse的经常出现如下图所示内存不足的提示 ...

  7. [C入门 - 游戏编程系列] 贪吃蛇篇(四) - 食物实现

    由于食物是贪吃蛇游戏中最简单的一部分,而且和其他部分关联性不强,基本上是一个独立的部分,所以我打算先实现它. 我的想法是食物必须在世界中才能被创造出来,也就是说,先有世界再有食物,所以我得先判断世界是 ...

  8. 异步编程设计模式Demo - AsyncComponentSample

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...

  9. 可以ping通,浏览器打不开网页 - 解决办法

    网络故障表现为: 1.电脑显示网络连接正常,DNS配置和hosts配置均正常 2.cmd可以ping通网址,域名 3.所有浏览器无法打开网页,有道云笔记置灰,微信二维码刷新失败 解决办法: 管理员权限 ...

  10. U盘启动时无USB-HDD选项的解决方案

    今天在使用一块老板子的时候 发现没有USB-HDD启动项 在启动顺序中只有 USB-ZIP(ZIP)  -FDD(软盘) -CDROM(光驱) 1.插入U盘 2.开机 3.在BIOS中找到Hard D ...