随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。
posts - 398,comments - 0,views - 13万
类一:
复制代码
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
    Map集合
        特点:
            双列集合,元素由键值对构成
            key(键)----value(值)
        注意:
            键不可以重复,值可以重复
        应用:
            Map<T1,T2> map = new HashMap<>();
            解释:
                T1:表示键的数据类型
                T2:表示值的数据类型

        成员方法:
            V put(K key,V value);   添加元素(键值对的形式),元素第一次添加返回null,重复添加会用新值覆盖旧值,并返回
            V get(Object key);      根据键获取对应的值
            Set<K> keySet();        获取所有键的集合

        遍历步骤:
            1.获取所有键的集合      keySet()
            2.遍历所有的键,获取到每一个键        迭代器,增强for
            3.根据键获取指定的值     get()

 */
public class Test {
    public static void main(String[] args) {
        //需求:向Map集合中添加三个学生对象,然后打印
        //1. 创建结婚对象
        Map<Integer,Student> map = new HashMap<>();
        //2.创建元素对象
        Student student1 = new Student("张3",12);
        Student student2 = new Student("张4",13);
        Student student3 = new Student("张3",12);

        //3.将元素对象添加到集合中
        //测试put()方法
        /*Student s1 = map.put(1, student1);
        System.out.println("s1: " + s1);
        Student s2 = map.put(1, student2);
        System.out.println("s2: " + s2);*/      //键不可以重复,否则后面的赋值会覆盖掉前面的值
        //打印集合
        map.put(1,student1);
        map.put(2,student2);
        map.put(3,student3);
        System.out.println("map: " + map);      //值可以重复

        //测试get()方法
        //根据键获取“张4”的值
        Student s3 = map.get(2);
        System.out.println("key: " + 2 + " ,value: " + s3);
        System.out.println("________________________________________________");


        //4.遍历集合
        //4.1.获取所有键的集合      keySet()
        Set<Integer> keys = map.keySet();
        //4.2.遍历所有的键,获取到每一个键        迭代器,增强for
        Iterator<Integer> it = keys.iterator();
        while (it.hasNext()) {
            //如果迭代器中有数据就获取
            Integer key = it.next();
            //4.3.根据键获取指定的值     get()
            Student value = map.get(key);
            System.out.println("key: " + key + " , value: " + value);
        }
        System.out.println("________________________________________________");

        //通过增强for实现
        for (Integer key : keys) {//获取所有的键
            //4.3.根据键获取指定的值     get()
            Student value = map.get(key);
            System.out.println("key: " + key + " , value: " + value);

        }

    }
}
复制代码

 



类二:
复制代码
package Demo27_Map集合;

import java.util.Objects;

//学生类
public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return age == student.age && Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}
复制代码

 

作者本人所有随笔仅为学习笔记,仅供参考

posted on   时间完全不够用啊  阅读(148)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示