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

news/2024/10/1 7:46:51

一、简介

  • 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;}@Overridepublic String toString() {return "Employee{" +"id=" + id +", employeeName='" + employeeName + '\'' +", salary=" + salary +'}';}
}

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29656.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Oracle修改字段长度及属性

首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247486117&idx=1&sn=02e2cd05e5db7eaa5758c70e81cf3972&chksm=ea375ed5dd40d7c367727562bdb00788f3bd139cbbda377f599586a47ce13ad9d04c56fd4d2d&token…

C#/.NET/.NET Core优秀项目和框架2024年4月简报

前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项…

localhost 重定向次数过多

在完成javaweb作业时出现了错误初始页面只有两个功能, 但是无论是点击登录还是注册,都会跳转到login.jsp页面从网上找到的答案是代码陷入死循环,因为总是跳转到login.jsp, 所以我查看了所有servlet类中跳转到login.jsp页面的代码,逻辑上并没有问题;然后我又查看了过滤器以…

Windows平台使用CMake+MinGW64编译OpenCV

Windows平台使用CMake+MinGW64编译OpenCV (注:2年前写的笔记, 可能有些地方过时了) 目录Windows平台使用CMake+MinGW64编译OpenCV1.安装及配置环境1.1 MinGW-w641.2 CMake1.3 OpenCV源码2.CMake配置及生成2.1 新建目录2.2 CMake-GUI2.3 编译配置2.4 生成2.5 Make编译和安装3.配…

[转帖]TLAB(Thread Local Allocation Buffer)

https://www.cnblogs.com/Chary/p/18034613 TLAB是虚拟机在堆内存的eden划分出来的一块专用空间,是线程专属的。在虚拟机的TLAB功能启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间,只给当前线程使用,这样每个线程都单独拥有一个空间,如果需要分配内存,…

K8s必须掌握的7个调试技巧

K8s必须掌握的7个调试技巧 原创 艾叔编程 艾叔编程 2024-05-09 09:35 北京 听全文Kubernetes(K8s)调试技术是指在使用Kubernetes集群过程中,用于定位和解决问题的方法和技术。Kubernetes是一个复杂的系统,它负责管理容器化的应用程序,确保它们按照预期运行。当应用程序出现…

联芯集成电路产品与方案

联芯集成电路产品与方案 逻辑制程解决方案 逻辑 / 混合信号 / 射频技术是数字电视、蓝牙、Wi-Fi、图像处理器,射频收发器等众多应用中最常用的晶圆专工解决方案。联电为不同的数据处理、混合信号及射频组件技术建立了广泛的跨代技术,也同时为建立专业技术平台奠定了坚实的基础…