java基础2(Map)
1.请简述Map 的特点
Map每个元素由键与值两部分组成
Map键不能重复,每个键对应一个值
键和值可以为null
2.说出Entry键值对对象遍历Map集合的原理。
Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在Map中是一一对应关系,这一对对象又称做Map 中的一个Entry(项)。Entry将键值对的对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。
3.请使用Map集合的方法完成添加元素,根据键删除,以及根据键获取值操作。
- public class demo09 {
- public static void main(String[] args) {
- // 1.创建HashMap
- HashMap<String, String> hm = new HashMap<String, String>();
- // 2.使用put添加元素
- hm.put("aa", "AA");
- hm.put("bb", "BB");
- hm.put("cc", "CC");
- hm.put("dd", "DD");
- // 3.使用put修改元素
- String v1 = hm.put("cc", "EE");
- // 4.使用get获取元素
- String st = hm.get("dd");
- System.out.println(st);
- // 5.使用remove删除元素
- String v2 = hm.remove("dd");
- System.out.println(v2);
- // 6.打印集合中的元素
- System.out.println(hm);
- }
- }
DD
DD
{aa=AA, bb=BB, cc=EE}
4.往一个Map集合中添加若干元素。获取Map中的所有value,并使用增强for和迭代器遍历输出每个value。
- public class demo09 {
- public static void main(String[] args) {
- // 1.创建HashMap
- HashMap<String, String> hm = new HashMap<String, String>();
- // 2.使用put添加元素
- hm.put("aa", "AA");
- hm.put("bb", "BB");
- hm.put("cc", "CC");
- hm.put("dd", "CC");
- // 3.使用Map的values方法获取到所有的value
- Collection<String> values = hm.values();
- // 4.使用增强for获取每个value
- for (String value : values) {
- System.out.println(value);
- }
- System.out.println("----------------");
- // 5.使用迭代器获取每个value
- Iterator<String> itr = values.iterator();
- while (itr.hasNext()) {
- System.out.println(itr.next());
- }
- }
- }
AA
BB
CC
CC
----------------
AA
BB
CC
CC
5.请使用Map集合存储自定义数据类型Car做键,对应的价格做值。并使用keySet和entrySet两种方式遍历Map集合。
- // 1.定义汽车类.包含名称和价格属性,重写hashCode和equals方法
- public class Car {
- private String name;
- private String color;
- public Car() {
- }
- public Car(String name, String color) {
- this.name = name;
- this.color = color;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getColor() {
- return color;
- }
- public void setColor(String color) {
- this.color = color;
- }
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Car car = (Car) o;
- return Objects.equals(name, car.name) &&
- Objects.equals(color, car.color);
- }
- @Override
- public int hashCode() {
- return Objects.hash(name, color);
- }
- }
- public class demo01 {
- public static void main(String[] args) {
- // 2.创建HashMapkey保存汽车对象,value是汽车价格
- HashMap<Car, Integer> hm = new HashMap<>();
- // 3.添加汽车到HashMap中
- Car c1 = new Car("长安奔奔", "黄色");
- Car c3 = new Car("奇瑞QQ", "黑色");
- Car c2 = new Car("铃木奥拓", "白色");
- hm.put(c1, 10000);
- hm.put(c2, 20000);
- hm.put(c3, 30000);
- // 4.使用keySet方式遍历Map
- Set<Car> keySet = hm.keySet();
- for (Car c : keySet) {
- // 根据key获取value
- Integer value = hm.get(c);
- System.out.println(c.getName() + ","+ c.getColor() + " - "+ value);
- }
- System.out.println("-------------");
- // 5.使用entrySet方式遍历Map
- Set<Map.Entry<Car, Integer>> entrySet = hm.entrySet();
- for (Map.Entry<Car, Integer> entry : entrySet) {
- Car key = entry.getKey();
- Integer value = entry.getValue();
- System.out.println(key.getName() + ","+ key.getColor() + " - "+ value);
- }
- }
- }
长安奔奔,黄色 - 10000
铃木奥拓,白色 - 20000
奇瑞QQ,黑色 - 30000
-------------
长安奔奔,黄色 - 10000
铃木奥拓,白色 - 20000
奇瑞QQ,黑色 - 30000
6
Map<Integer,String> map = new HashMap<Integer, String>();
- 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"
- public class demo02 {
- public static void main(String[] args) {
- // 1.定义HashMap,编号作为key,姓名作为value
- Map<Integer,String> map = new HashMap<Integer, String>();
- // 2.使用put方法添加元素
- map.put(1, "AA");
- map.put(2, "BB");
- map.put(3, "CC");
- map.put(4, "DD");
- // 3.使用keySet+增强for迭代map中的元素,并打印
- Set<Integer> keySet = map.keySet();
- for (Integer key : keySet) {
- String value = map.get(key);
- System.out.println(key + " -- "+ value);
- }
- // 4.使用put向该map集合中插入一个编码为5姓名为EE的信息
- map.put(5, "EE");
- // 5.使用remove移除该map中的编号为1的信息
- map.remove(1);
- // 6.使用put将map集合中编号为2的姓名信息修改为"FF"
- map.put(2, "FF");
- System.out.println(map);
- }
- }
1 -- AA
2 -- BB
3 -- CC
4 -- DD
{2=FF, 3=CC, 4=DD, 5=EE}
7.有2个数组,第一个数组内容为:[黑龙江省,浙江省,江西省,广东省,福建省],第二个数组为:[哈尔滨,杭州,南昌,广州,福州],将第一个数组元素作为key,第二个数组元素作为value存储到Map集合中。如{黑龙江省=哈尔滨, 浙江省=杭州, …}
- public class demo03 {
- public static void main(String[] args) {
- // 1.定义第一个数组arr1
- String[] arr1 = {"黑龙江省", "浙江省", "江西省", "广东省", "福建省"};
- // 2.定义第二个数组arr2
- String[] arr2 = {"哈尔滨", "杭州", "南昌", "广州", "福州"};
- // 3.创建HashMap,key存放省,value存放市
- HashMap<String, String> hm = new HashMap<>();
- // 4.使用普通for循环遍历arr1
- for (int i = 0; i < arr1.length; i++) {
- // 5.根据索引到arr1中获取到省
- String key = arr1[i];
- // 6.根据索引到arr2中获取到省会城市
- String value = arr2[i];
- // 7.将省和省会城市添加到HashMap中
- hm.put(key, value);
- }
- // 8.输出HashMap中的内容
- System.out.println(hm);
- }
- }
java基础2(Map)的更多相关文章
- Java基础关于Map(字典)的方法使用
Java基础关于Map(字典)的方法使用 java中一般用map与hashmap来创建一个key-value对象 使用前提是要导入方法包: import java.util.HashMap: impo ...
- 黑马程序员——JAVA基础之Map集合
------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...
- JAVA基础之Map接口
个人理解: 个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法.特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合.不过定义自 ...
- java 基础 --Collection(Map)
Map是不是集合?哈哈哈 java编程思想>的第11章,第216页,正数第13行,中原文:“……其中基本的类型是LIst.Set.Queue和Map.这些对象类型也称为集合类,但由于Java类库 ...
- [Java基础]List,Map集合总结
java.util包下: Collection |--List 接口 |----ArrayList |----LinkedList |----Vector |-----Stack |---Set ...
- java基础(20):Map、可变参数、Collections
1. Map接口 1.1 Map接口概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤 ...
- Java 基础:Map的一家
0.Java中的集合框架 1.Map--接口 public interface Map<K,V> 包:java.util.Map Map提供了一种映射关系,其中的元素是以键值对(key-v ...
- Java基础教程——Map
Map 返回类型 方法 描述 V get(Object key) 根据key取得value V put(Obejct k,Object v) 向Map中加入(替换)元素,返回之前的Value:之前没有 ...
- 【JAVA基础】 MAP 遍历
public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...
- Java基础之Map的遍历
遍历Map集合,有四种方法: public static void main(String[] args) { Map<String, String> map = new HashMa ...
随机推荐
- laravel insert 、save、update、create区别(总结二)
1.insert:插入数据时,需要维护 created_at 和 updated_at字段, 2.save:无论插入或者更新,会自动维护,无需手动操作 //插入: public function st ...
- koa 基础(十七)原生 JS 中的类、静态方法、继承
1.app.js /** * 原生 JS 中的类.静态方法.继承 * es5中的类和静态方法 */ function Person(name, age) { // 构造函数里面的方法和属性 this. ...
- GitHub-Microsoft:DotNet3
ylbtech-GitHub-Microsoft:DotNet3 1.返回顶部 · mbmlbook Sample code for the Model-Based Machine Learning ...
- 2019-8-12未命名文件 sdfsf
2019-8-12未命名文件 sdfsf 新建模板小书匠 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 小书匠主按钮>模板 里的模板管理来改变新建文章的内容.sdfsdfsdf
- javascript之注册事件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 自定义application的全局捕获异常实现
package com.loaderman.global; import android.app.Application; import android.os.Environment; import ...
- SQL Server 等待统计信息基线收集
背景 我们随时监控每个服务器不同时间段的wait statistics ,可以根据监控信息大概判断什么时候开始出现异常,相当于一个wait statistics基线收集,还可以具体分析占比高的等待类型 ...
- shell脚本安装python、pip-----非交互式的--批量执行函数
首先把pip-.tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python.不要先安装或只安装python,否则很容易出错, cat >>pip-python ...
- Ubuntu中安装memcache并且在Python中连接memcache
1.安装memcache到Ubuntu. PS:依赖libevent,需要提前安装 yum install libevent-devel #centos中使用这个 apt-get install li ...
- MSSQL数据库日志满的快速解决办法
先提供一种复杂的方法压缩日志及数据库文件如下: 1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 数据库名 WITH NO_ ...