1.请简述Map 的特点

Map每个元素由键与值两部分组成

Map键不能重复,每个键对应一个值

键和值可以为null

2.说出Entry键值对对象遍历Map集合的原理。

Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在Map中是一一对应关系,这一对对象又称做Map 中的一个Entry(项)。Entry将键值对的对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。

3.请使用Map集合的方法完成添加元素,根据键删除,以及根据键获取值操作。

  1. public class demo09 {
  2. public static void main(String[] args) {
  3.  
  4. // 1.创建HashMap
  5. HashMap<String, String> hm = new HashMap<String, String>();
  6.  
  7. // 2.使用put添加元素
  8. hm.put("aa", "AA");
  9. hm.put("bb", "BB");
  10. hm.put("cc", "CC");
  11. hm.put("dd", "DD");
  12.  
  13. // 3.使用put修改元素
  14. String v1 = hm.put("cc", "EE");
  15.  
  16. // 4.使用get获取元素
  17. String st = hm.get("dd");
  18. System.out.println(st);
  19.  
  20. // 5.使用remove删除元素
  21. String v2 = hm.remove("dd");
  22. System.out.println(v2);
  23.  
  24. // 6.打印集合中的元素
  25. System.out.println(hm);
  26.  
  27. }
  28. }

DD
DD
{aa=AA, bb=BB, cc=EE}

4.往一个Map集合中添加若干元素。获取Map中的所有value,并使用增强for和迭代器遍历输出每个value。

  1. public class demo09 {
  2. public static void main(String[] args) {
  3.  
  4. // 1.创建HashMap
  5. HashMap<String, String> hm = new HashMap<String, String>();
  6.  
  7. // 2.使用put添加元素
  8. hm.put("aa", "AA");
  9. hm.put("bb", "BB");
  10. hm.put("cc", "CC");
  11. hm.put("dd", "CC");
  12.  
  13. // 3.使用Map的values方法获取到所有的value
  14. Collection<String> values = hm.values();
  15.  
  16. // 4.使用增强for获取每个value
  17. for (String value : values) {
  18. System.out.println(value);
  19. }
  20.  
  21. System.out.println("----------------");
  22. // 5.使用迭代器获取每个value
  23. Iterator<String> itr = values.iterator();
  24. while (itr.hasNext()) {
  25. System.out.println(itr.next());
  26. }
  27.  
  28. }
  29. }

AA
BB
CC
CC
----------------
AA
BB
CC
CC

5.请使用Map集合存储自定义数据类型Car做键,对应的价格做值。并使用keySet和entrySet两种方式遍历Map集合。

  1. // 1.定义汽车类.包含名称和价格属性,重写hashCode和equals方法
  2. public class Car {
  3. private String name;
  4.  
  5. private String color;
  6.  
  7. public Car() {
  8. }
  9.  
  10. public Car(String name, String color) {
  11. this.name = name;
  12. this.color = color;
  13. }
  14.  
  15. public String getName() {
  16. return name;
  17. }
  18.  
  19. public void setName(String name) {
  20. this.name = name;
  21. }
  22.  
  23. public String getColor() {
  24. return color;
  25. }
  26.  
  27. public void setColor(String color) {
  28. this.color = color;
  29. }
  30.  
  31. @Override
  32. public boolean equals(Object o) {
  33. if (this == o) return true;
  34. if (o == null || getClass() != o.getClass()) return false;
  35. Car car = (Car) o;
  36. return Objects.equals(name, car.name) &&
  37. Objects.equals(color, car.color);
  38. }
  39.  
  40. @Override
  41. public int hashCode() {
  42.  
  43. return Objects.hash(name, color);
  44. }
  45. }
  1. public class demo01 {
  2. public static void main(String[] args) {
  3. // 2.创建HashMapkey保存汽车对象,value是汽车价格
  4. HashMap<Car, Integer> hm = new HashMap<>();
  5.  
  6. // 3.添加汽车到HashMap中
  7. Car c1 = new Car("长安奔奔", "黄色");
  8. Car c3 = new Car("奇瑞QQ", "黑色");
  9. Car c2 = new Car("铃木奥拓", "白色");
  10.  
  11. hm.put(c1, 10000);
  12. hm.put(c2, 20000);
  13. hm.put(c3, 30000);
  14.  
  15. // 4.使用keySet方式遍历Map
  16. Set<Car> keySet = hm.keySet();
  17. for (Car c : keySet) {
  18. // 根据key获取value
  19. Integer value = hm.get(c);
  20. System.out.println(c.getName() + ","+ c.getColor() + " - "+ value);
  21. }
  22.  
  23. System.out.println("-------------");
  24.  
  25. // 5.使用entrySet方式遍历Map
  26. Set<Map.Entry<Car, Integer>> entrySet = hm.entrySet();
  27. for (Map.Entry<Car, Integer> entry : entrySet) {
  28. Car key = entry.getKey();
  29. Integer value = entry.getValue();
  30. System.out.println(key.getName() + ","+ key.getColor() + " - "+ value);
  31. }
  32.  
  33. }
  34. }

长安奔奔,黄色 - 10000
铃木奥拓,白色 - 20000
奇瑞QQ,黑色 - 30000
-------------
长安奔奔,黄色 - 10000
铃木奥拓,白色 - 20000
奇瑞QQ,黑色 - 30000

6

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

  1. map.put(1, "AA");
    map.put(2, "BB");
    map.put(3, "CC");
    map.put(4, "DD");

要求:

1.遍历集合,并将序号与对应人名打印。

2.向该map集合中插入一个编码为5姓名为EE的信息

3.移除该map中的编号为1的信息

4.将map集合中编号为2的姓名信息修改为"FF"

  1. public class demo02 {
  2. public static void main(String[] args) {
  3. // 1.定义HashMap,编号作为key,姓名作为value
  4. Map<Integer,String> map = new HashMap<Integer, String>();
  5.  
  6. // 2.使用put方法添加元素
  7. map.put(1, "AA");
  8. map.put(2, "BB");
  9. map.put(3, "CC");
  10. map.put(4, "DD");
  11.  
  12. // 3.使用keySet+增强for迭代map中的元素,并打印
  13. Set<Integer> keySet = map.keySet();
  14. for (Integer key : keySet) {
  15. String value = map.get(key);
  16. System.out.println(key + " -- "+ value);
  17. }
  18.  
  19. // 4.使用put向该map集合中插入一个编码为5姓名为EE的信息
  20. map.put(5, "EE");
  21.  
  22. // 5.使用remove移除该map中的编号为1的信息
  23. map.remove(1);
  24.  
  25. // 6.使用put将map集合中编号为2的姓名信息修改为"FF"
  26. map.put(2, "FF");
  27. System.out.println(map);
  28.  
  29. }
  30. }

1 -- AA
2 -- BB
3 -- CC
4 -- DD
{2=FF, 3=CC, 4=DD, 5=EE}

7.有2个数组,第一个数组内容为:[黑龙江省,浙江省,江西省,广东省,福建省],第二个数组为:[哈尔滨,杭州,南昌,广州,福州],将第一个数组元素作为key,第二个数组元素作为value存储到Map集合中。如{黑龙江省=哈尔滨, 浙江省=杭州, …}

  1. public class demo03 {
  2. public static void main(String[] args) {
  3. // 1.定义第一个数组arr1
  4. String[] arr1 = {"黑龙江省", "浙江省", "江西省", "广东省", "福建省"};
  5. // 2.定义第二个数组arr2
  6. String[] arr2 = {"哈尔滨", "杭州", "南昌", "广州", "福州"};
  7.  
  8. // 3.创建HashMap,key存放省,value存放市
  9. HashMap<String, String> hm = new HashMap<>();
  10.  
  11. // 4.使用普通for循环遍历arr1
  12. for (int i = 0; i < arr1.length; i++) {
  13. // 5.根据索引到arr1中获取到省
  14. String key = arr1[i];
  15. // 6.根据索引到arr2中获取到省会城市
  16. String value = arr2[i];
  17.  
  18. // 7.将省和省会城市添加到HashMap中
  19. hm.put(key, value);
  20. }
  21. // 8.输出HashMap中的内容
  22. System.out.println(hm);
  23.  
  24. }
  25. }

java基础2(Map)的更多相关文章

  1. Java基础关于Map(字典)的方法使用

    Java基础关于Map(字典)的方法使用 java中一般用map与hashmap来创建一个key-value对象 使用前提是要导入方法包: import java.util.HashMap: impo ...

  2. 黑马程序员——JAVA基础之Map集合

    ------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...

  3. JAVA基础之Map接口

    个人理解: 个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法.特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合.不过定义自 ...

  4. java 基础 --Collection(Map)

    Map是不是集合?哈哈哈 java编程思想>的第11章,第216页,正数第13行,中原文:“……其中基本的类型是LIst.Set.Queue和Map.这些对象类型也称为集合类,但由于Java类库 ...

  5. [Java基础]List,Map集合总结

    java.util包下: Collection    |--List 接口 |----ArrayList |----LinkedList |----Vector |-----Stack |---Set ...

  6. java基础(20):Map、可变参数、Collections

    1. Map接口 1.1 Map接口概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤 ...

  7. Java 基础:Map的一家

    0.Java中的集合框架 1.Map--接口 public interface Map<K,V> 包:java.util.Map Map提供了一种映射关系,其中的元素是以键值对(key-v ...

  8. Java基础教程——Map

    Map 返回类型 方法 描述 V get(Object key) 根据key取得value V put(Obejct k,Object v) 向Map中加入(替换)元素,返回之前的Value:之前没有 ...

  9. 【JAVA基础】 MAP 遍历

    public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...

  10. Java基础之Map的遍历

    遍历Map集合,有四种方法:   public static void main(String[] args) { Map<String, String> map = new HashMa ...

随机推荐

  1. laravel insert 、save、update、create区别(总结二)

    1.insert:插入数据时,需要维护 created_at 和 updated_at字段, 2.save:无论插入或者更新,会自动维护,无需手动操作 //插入: public function st ...

  2. koa 基础(十七)原生 JS 中的类、静态方法、继承

    1.app.js /** * 原生 JS 中的类.静态方法.继承 * es5中的类和静态方法 */ function Person(name, age) { // 构造函数里面的方法和属性 this. ...

  3. GitHub-Microsoft:DotNet3

    ylbtech-GitHub-Microsoft:DotNet3 1.返回顶部 · mbmlbook Sample code for the Model-Based Machine Learning ...

  4. 2019-8-12未命名文件 sdfsf

    2019-8-12未命名文件 sdfsf 新建模板小书匠 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 小书匠主按钮>模板 里的模板管理来改变新建文章的内容.sdfsdfsdf

  5. javascript之注册事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 自定义application的全局捕获异常实现

    package com.loaderman.global; import android.app.Application; import android.os.Environment; import ...

  7. SQL Server 等待统计信息基线收集

    背景 我们随时监控每个服务器不同时间段的wait statistics ,可以根据监控信息大概判断什么时候开始出现异常,相当于一个wait statistics基线收集,还可以具体分析占比高的等待类型 ...

  8. shell脚本安装python、pip-----非交互式的--批量执行函数

    首先把pip-.tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python.不要先安装或只安装python,否则很容易出错, cat >>pip-python ...

  9. Ubuntu中安装memcache并且在Python中连接memcache

    1.安装memcache到Ubuntu. PS:依赖libevent,需要提前安装 yum install libevent-devel #centos中使用这个 apt-get install li ...

  10. MSSQL数据库日志满的快速解决办法

    先提供一种复杂的方法压缩日志及数据库文件如下:   1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG  2.截断事务日志: BACKUP LOG 数据库名 WITH NO_ ...