java Map

来源:互联网 发布:seo站外怎么优化 编辑:程序博客网 时间:2024/06/11 12:54

Map — 接口
1 数据的保存 是以键值形式存储的
2 键 是唯一的(不能重复)

Hashset 和 Hashmap之间的关系Hashset 底层实现 实际上就是一个 HashmapHashset 是依赖 HashmapHashMap<String , Integer> map = new HashMap<>();        //保存键值对        //添加键值对方法的返回值 返回 被覆盖的值部分        //测试添加方法的返回值        Integer num6 = map.put("瞿金耀", 20);        Integer num1 = map.put("瞿金耀", 20);        Integer num2 = map.put("静", 18);        Integer num3 = map.put("越", 19);        Integer num4 = map.put("红", 17);        System.out.println(num1);        System.out.println(num2);        System.out.println(num3);        System.out.println(num4);        //打印map---- 重写toString方法        System.out.println(map);

Hashset(重写Hashcode()) 和 equals()

HashMap<Student, String> hashMap = new HashMap<>();        hashMap.put(new Student("张三",29), "南京");        hashMap.put(new Student("静",18), "南京");        hashMap.put(new Student("张三",29), "南京");        hashMap.put(new Student("月",18), "南京");        //键不会重复保存 但是 值会覆盖上面一个值        System.out.println(hashMap);
@Overridepublic int hashCode() {    final int prime = 31;    int result = 1;    result = prime * result + Age;    result = prime * result + ((name == null) ? 0 : name.hashCode());    return result;}@Overridepublic boolean equals(Object obj) {    if (this == obj)        return true;    if (obj == null)        return false;    if (getClass() != obj.getClass())        return false;    Student other = (Student) obj;    if (Age != other.Age)        return false;    if (name == null) {        if (other.name != null)            return false;    } else if (!name.equals(other.name))        return false;    return true;}

Map 的三种 遍历方式(重点)
Map类中没有迭代器 不能直接迭代(遍历)
keySet()这个方法是把map中所有key取出放入
一个Set集合中 返回给你
get()通过传入键key 返回的时候 键key 对应value值
一 用迭代器
//遍历Map

HashMap<String, Integer> map = new HashMap<>();        map.put("松松", 11);        map.put("涵涵", 11);        map.put("宁宁", 11);        map.put("亮亮", 11);        //取出所有key的set集合        Set<String> keySet = map.keySet();        //取出set集合中 迭代器        Iterator<String> iterator = keySet.iterator();        //为了拿到所有的key去遍历 set集合       while (iterator.hasNext()) {           //每一个key        String key =  iterator.next();        //通过每一个key找出对应的每一个value;        Integer value= map.get(key);        //打印        System.out.println(key+"---"+value);

二 增强for循环

// 遍历Map        HashMap<String, Integer> map = new HashMap<>();        map.put("松松", 11);        map.put("涵涵", 11);        map.put("宁宁", 11);        map.put("亮亮", 11);        //取出所有key的set集合        Set<String> keySet = map.keySet();        for (String key : keySet) {        Integer value= map.get(key);        System.out.println(key+"="+value);        }
三 entryset()该方法返回的是一个集合 集合中存储的是一个一个键值对象HashMap<String, Integer> map = new HashMap<>();        map.put("松松", 11);        map.put("涵涵", 11);        map.put("宁宁", 11);        map.put("亮亮", 11);        //获取map中所有的Entry对象的Set集合        Set<Entry<String, Integer>> entrySet = map.entrySet();        //使用set集合中的迭代器对每一个Entry遍历        Iterator<Entry<String, Integer>> iterator = entrySet.iterator();        //迭代        while (iterator.hasNext()) {            //取出entry对象            Entry<String, Integer> entry = iterator.next();            //从Entry对象中获取key和value            String key = entry.getKey();            Integer value = entry.getValue();            System.out.println(key+"="+value);
原创粉丝点击