Map类2020/07/29

简述Map的特点

Map是双列集合,分别由键和值组成一对,键不能重复,值可以重复,键和值一一对应,同时键和值都可以为null。

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

Entry就是将Map的键和值的一一对应的关系封装成了键值对对象,这样我们就可以在遍历map时在每一个键值对中取出相应的键和值.

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

import java.util.HashMap;

public class MapTest {
    public static void main(String[] args) {
        HashMap map = new HashMap<>();
        map.put("陈1", "蛤蟆皮");
        map.put("陈23", "蛤蟆皮");
        map.put("赵343", "憨批");
        System.out.println(map.get("陈1"));//蛤蟆皮
        System.out.println(map.remove("赵343"));//憨批
        System.out.println(map); //{陈1=蛤蟆皮,陈23=蛤蟆皮}
    }
}

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

import java.util.HashMap;
import java.util.Iterator;

public class MapTest1 {
    public static void main(String[] args) {
        HashMap map = new HashMap<>();
        map.put("陈1", "蛤蟆皮");
        map.put("陈23", "蛤蟆皮");
        map.put("赵343", "憨批");
        for(String value : map.values()){
            System.out.println(value);
        }
        Iterator ite = map.values().iterator();
        while (ite.hasNext()){
            System.out.println(ite.next());
        }
    }
}

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

import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Set;

public class Car {
    private String name;
    private String color;
    public Car(){}
    public Car(String name, String color){
        this.name = name;
        this.color = color;
    }

    @Override
    public String toString() {
        return "Car{" +
                "name='" + name + '\'' +
                ", 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 static void main(String[] args) {
        HashMap map = new HashMap<>();
        map.put(new Car("宝马","蓝色"), 200000);
        map.put(new Car("奥迪","黑色"), 900000);
        map.put(new Car("布加迪","蓝色"), 20000000);
        Set set = map.keySet();
        for(Object key : set){
            System.out.println(key + "=" +map.get(key));
        }
        Set> set1 = map.entrySet();
        for(Entry entry : set1){
            System.out.println(entry.getKey()+"="+entry.getValue());
        }
    }
}


现在有一个map集合如下:

要求:
1.遍历集合,并将序号与对应人名打印。
2.向该map集合中插入一个编码为5姓名为李晓红的信息
3.移除该map中的编号为1的信息
4.将map集合中编号为2的姓名信息修改为"周林"


import java.util.HashMap;
import java.util.Map;

public class MapTest2 {
    public static void main(String[] args) {
        Map map = new HashMap();
        map.put(1, "张三丰");
        map.put(2, "周芷若");
        map.put(3, "汪峰");
        map.put(4, "灭绝师太");
        for(Integer i : map.keySet()){
            System.out.println(map.get(i));
        }
        map.putIfAbsent(5, "李晓红");
        map.remove(1);
        map.put(2, "周林");
        System.out.println(map);
    }
}

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

import java.util.HashMap;

public class MapTest3 {
    public static void main(String[] args) {
        String[] province = {"黑龙江","浙江省","江西省","广东省","福建省"};
        String[] area = {"哈尔滨","杭州","南昌","广州","福州"};
        System.out.println(mapMethod(province,area));
    }
    public static HashMap mapMethod (Object[] province, Object[] area){
        HashMap map = new HashMap<>();
        int len = province.length;
        for (int i = 0; i < len; i++) {
            map.put(province[i], area[i]);
        }
        return map;
    }
}


你可能感兴趣的:(Map类2020/07/29)