首页 > 编程语言 >JDK源码阅读-------自学笔记(二十六)(java.util.Map 自定义讲解)

JDK源码阅读-------自学笔记(二十六)(java.util.Map 自定义讲解)

时间:2024-05-10 09:03:29浏览次数:26  
标签:map java 自定义 id public Employee 源码 put employeeName

一、简介

  • Map就是用来存储“键(key)-值(value)”对的.
  • 通过键寻找value,所以键不能重复.
  • 数组的本质也是一种键值对,区别就是索引一般是数字,而Map的Key可以是任意对象(字符串,数字),相当于把数组的索引范围扩的更大,使用更方便.
  • 实际开发中较为常用.

二、Map的常用方法实例

  • (1)存储数据(V put(K key, V value))


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

        map.put(1,"a");
        map.put(2,"b");
        map.put(3,"c");
        map.put(4,"d");
        map.put(5,"e");
        map.put(6,"f");
        map.put(7,"g");
        map.put(8,"h");
        map.put(9,"i");


  • (2)取出数据(V get(Object key))


        String s = map.get(1);
        System.out.println(s);
  

  • (3)添加对象操作


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

/**
 * @author liuyangos8888
 */
public class MapHasObject {

    public static void main(String[] args) {

        Employee e1 = new Employee(1001, "张三", 50000);
        Employee e2 = new Employee(1002, "李四", 5000);
        Employee e3 = new Employee(1003, "龙五", 6000);
        Employee e4 = new Employee(1001, "五六", 7000);


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


        map.put(1001, e1);
        map.put(1002, e2);
        map.put(1003, e3);
        map.put(1001, e4);

        Employee emp = map.get(1001);

        System.out.println(emp.getEmployeeName());

        System.out.println(map);
    }


}


/**
 * 新建职员对象
 */
class Employee {

    /**
     * 工号
     */
    private int id;

    /**
     * 姓名
     */
    private String employeeName;


    /**
     * 薪资
     */
    private double salary;


    public Employee(int id, String employeeName, double salary) {
        this.id = id;
        this.employeeName = employeeName;
        this.salary = salary;
    }

    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }


    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", employeeName='" + employeeName + '\'' +
                ", salary=" + salary +
                '}';
    }
}

  

结果:

标签:map,java,自定义,id,public,Employee,源码,put,employeeName
From: https://www.cnblogs.com/liuyangfirst/p/13882126.html

相关文章

  • [4]自定义Lua解析器管理器-------演化脚本V0.7
    使用自定义lua解析管理器调用函数使用自定义委托来调用lua脚本中的多返回值函数和长参数类型的函数。先看代码,依旧是上篇文章中所贴的脚本。新增调用两个函数testFuncusingSystem;usingBaseFramework;usingLuaInterface;usingUnityEngine;usingUnityEngine.Events;us......
  • JAVA_WEB复习之请求响应
    简单参数请求:原始的方法,我们需要通过servlet中提供的api,HttpServletRequest(请求对象),获取请求的相关信息。比如获取请求参数:当tomcat接收到请求时,它会把请求的信息封装httpservletrequest到对象中。而在Springboot的环境,原始的API进行了封装,接收参数的形式更加简单。如果是简单......
  • Springboot项目的jar包的运行方式以及使用yum安装java后忘记了位置
    SpringBoot项目打包后的jar的部署方式这里我写了五种部署方式1.直接启动java-jarxxx.jar这种方式就只适合自己在测试时用一下,关闭会话就能停止运行属实是方便。2.后台启动java-jarxxx.jar&在后台静默启动,同样关闭会话也会停止,优点是和上面一样,日志是打印在窗口的3......
  • java9
    小练习:publicclasstest1{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println("请输入当前机票的原价");intticket=sc.nextInt();System.out.println("请输入月份");int......
  • Java根据数学公式计算出结果
    importjavax.script.ScriptEngine;importjavax.script.ScriptEngineManager;importjavax.script.ScriptException;publicclassTest{publicstaticvoidmain(String[]args){//年均充放电量=(E2*H4*G4*0.95*0.86)*0.871/10000Stringexpressi......
  • 【java】Java之关于基本数据类型和引用数据类型的存放位置
    1、基本数据类型存放在哪?基本类型的变量存在栈里或者堆里不是由"大小可知,生存期可知"就能确定了。关键是上下文。比如:123voidmethod(){    inta=3;}这自然是存在栈里的。局部方法嘛。而:123classTest{    inta=3;}......
  • Java学设计模式之桥接模式
    一、桥接模式概念1.1什么是桥接模式桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。桥接模式通过将抽象部分和实现部分分离来解决多维度变化的问题,从而提高了系统的灵活性和可扩展性。结构桥接模式通常由以下几个部分组成:Abstraction(抽象类......
  • 第二届数信杯南区wp-easyJava
    writeupeasyJava用EclipseMemoryAnalyzer进行分析,利用OQL查找字符串这里要写正则表达式:我写了\\u.*意思是找unicode字符串,因为这里的中文都做了unicode编码搜索到这么一个字符串列表,转码——红色框框里的是还原后的内容。如下:想跟你说一个小秘密:我把码表修改成了......
  • Java-线程-线程池
    0.背景参考资料:Java线程池实现原理及其在美团业务中的实践在Java早期,每次创建线程时,都要涉及到线程的创建、销毁以及资源管理,这对于系统的性能和资源利用率是一种浪费。因此,Java提供了线程池的概念,以提高线程的管理效率和性能。资源管理优化:传统的线程创建和销毁需要涉......
  • Java学设计模式之装饰器模式
    一、模式概念1.1什么是模式装饰模式是一种结构型设计模式,它允许向现有对象动态添加新功能,同时又不改变其结构。装饰模式通过将对象放置在包装器类中,然后在运行时动态地向对象添加新的行为或责任,从而实现这一目的。结构装饰模式通常由以下几个部分组成:Component(组件):定义一......