Java 做项目能用到 Map 哪些功能?这篇总结全了

Java map集合实现上一条(篇),下一条(篇)新闻翻篇功能     传统实现新闻消息的上一条和下一条功能均使用list集合即可,【即:将数据id保存在list集合中,点击上一条时将id减1,点击下一条时id加1】,此时实现传统的上一条与下一条功能是没有问题的。    但是对于一些特殊的显示功能就无法实现。例如:在数据库中存储了365天每天发生的事情(多件事)如图1(字段分别为id,year,month,day,title),在页面上显示对应于今天发生的事情... 阅读详情

在 Java 的集合框架里除了 Collection 类族外还有 Map 类族,在 Java 中 Collection 类族表示存储着对象的各种集合数据结构,而 Map 类族则表示存储着键值对的映射表数据结构。

类族的意思是可以归为一大类的接口、抽象类、实现类。Collection 和 Map 本身都是接口,代表一大类具有共性的数据结构,一个代表集合另外一个代表映射表。而集合、映射表是有序的还是无序的、底层用什么数据结构,则是由类族里的各个实现类决定的,比如 ArrayList 的元素是有序的,HashSet 内的元素不可重复且无序等等。

聊明白了 Collection 和 Map 类族具体是什么后,进入主题,学习一下 Map。本文的大纲如下:

Map 类族的成员

下面的层级架构图可以很好地展示出 Map 类族里都有哪些接口,抽象类和实现类。

上图清晰地表示出了Map 类族里的 接口、抽象类、实现类还有它们相互之间的关系。

  • Map 接口表示一个保存键值对(key-value)的映射表。Map 中不能包含重复的键;每个键最多只能映射到一个值。
  • AbstractMap 是一个抽象类,它实现了 Map 接口中的核心 API。其它 Map 的实现类可以通过继承 AbstractMap 来减少重复编码。
  • SortedMap 是继承自 Map 的接口,用来表示有序的键值对映射表。
  • HashMap、TreeMap、LinkedHashMap 和 WeakHashMap 是具体的 Map 实现类,其中常用的是HashMap 和 TreeMap,另外两个能用到的场景很少见。
  • Map.Entry 在上图用组合关系(Composition)表示了它是 Map 的构成元素。 Map.Entry 接口是 Map 接口中定义的内嵌接口,表示 Map 中的单个键值对实体。

HashMap 和 TreeMap

HashMap

HashMap 底层使用哈希表来存储元素。键和值可以是任何类型,也可以是 null 。HashMap 不保证元素的任何存储和遍历顺序,当集合发生变化时,元素的顺序可能会发生变化。存储在 HashMap 中元素被分装到了不同的桶中。元素的 hashCode() 方法确定它属于哪个桶。

举个简单的例子,比如哈希码从 1 到 100 的元素属于第一个桶,哈希码 101 到 200 的元素属于第二个桶,依此类推。以这种分桶的方式存储元素的意义在于,我们可以在搜索、删除元素时消除对不相关桶中的元素的影响,添加元素时如果不发生桶溢出,也不会影响到其他桶的元素。

TreeMap

TreeMap 是提供了顺序保证的键值对结构,其中的元素默认按照元素 Key 的自然排序顺序进行存储,也可以在构造时提供 Comparator 来指定元素的存储顺序。 TreeMap 底层使用平衡的红黑树来存储元素,因此元素插入时间和搜索时间都比较稳定。当需要使用存有大量数据的Map数据结构时,TreeMap 是一个不错的选择。

另外在 Set 章节中我们学习过的例子 TreeSet 其就是依赖 TreeMap 实现的,当时我们也演示过怎么给容器设置排序器(Comparator)。

HashMap 是所有 Map 实现中最快的,如果数据量不大,且对元素的顺序没有要求的场景中更推荐使用 HashMap。

创建 Map

创建 Map 就是创建 Map 接口的实现类的实例,下面是创建 HashMap 和 TreeMap 的示例。

Map mapA = new HashMap();

Map mapB = new TreeMap();
复制代码

默认情况下,可以把任何对象放入Map,但是从 Java 5 开始,使用泛型可以限制 Map 中的键和值的对象类型。

Map<String, Student> map = new HashMap<>();
复制代码

这个 Map 现在只能接受 String 类型的键和 Student 类型的值。这样在访问和迭代Map的键值对时,就无需再对他们进行强制类型转换。

for(Student student : map.values()){
   // ...
}

for(String key : map.keySet()){
   Student value = map.get(key);
   // ...
}
复制代码

声明和创建 Map 时应该始终指定键值对的泛型类型,泛型类型可帮助我们避免向 Map 中插入错误的对象,并使阅读代码的人更容易理解 Map 包含的对象类型。

关于TreeMap 我们还可以在创建实例时给构造方法传递一个 Comparator 来指定元素的排列顺序。

Map<Student, Integer> map = new TreeMap<>(new Comparator<Student>() {
    public int compare(Student p1, Student p2) {
        return p1.score > p2.score ? -1 : 1;
    }
});
复制代码

上面这个示例指定了 map 按照 Student 实例的分数倒序排序。

往 Map 中写入单个元素

调用 Map 实例的 put() 方法,可以往 Map 中写入键值对

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

map.put("key1", "element 1");
map.put("key2", "element 2");
map.put("key3", "element 3");
复制代码

调用 put() 方法后,会将键映射到值,并将值返回。

只有 Java 的对象才可以用作 Map 中的键和值。如果将原始值(例如 int、double 等)作为键或值传递给 Map,原始值将在作为参数传递之前进行自动装箱。

map.put("key", 123);
复制代码

上例中传递给 put() 方法的值是一个原始 int 值,不过,Java 会将它自动装箱到一个 Integer 实例中。因为 put() 方法需要 Oject或其子类的实例作为键和值,所以将原始值作为键传递给 put() 方法时,会发生自动装箱。

一个给定的键只能在 Map 中出现一次。这意味着,对于键“key1”,在同一个 Map 实例中只能映射一个值。当然,在不同的 Map 实例中是可以存在相同的键的。 如果使用相同的键多次调用 put() 想一个 Map 实例中写入值的话,新值将覆盖旧值,即键只能映射到最后一次调用 put() 方法时传递过来的值。

Map 的键和值可以是Null

有点让人惊讶的是,可以使用 null 作为 Map 中的键。

Map map = new HashMap();

map.put(null, "value for null key");

String value = map.get(null);
复制代码

调用Map 实例的 get() 方法,把 null 作为参数,即可获取 null 键对应的值。null 作为键时同样满足Map 内键不可多次出现的约束,整个 Map 实例中只允许出现一个为 null 的键。

既然键可以为null ,那值更是允许存储为 null 了。

map.put("D", null);

Object value = map.get("D");
复制代码

往 Map 中写入多个元素

Map 接口有一个叫 putAll() 的方法,该方法可以从另一个 Map 实例复制所有键值对到调用 putAll() 方法的 Map 实例中。在集合论中,这也称为两个 Map 实例的并集。

Map<String, String> mapA = new HashMap<>();
mapA.put("key1", "value1");
mapA.put("key2", "value2");

Map<String, String> mapB = new HashMap<>();
mapB.putAll(mapA);
复制代码

上面例程里会把 mapA 中的所有键值对拷贝到 mapB 中。注意,调用 mapB.putAll(mapA) 只会将 mapA 中的键值对复制到 mapB,而不会发生从 mapB 复制到 mapA,要想反向复制,则必须执行代码 mapA.putAll(mapB)。

从 Map 中获取值

要获取存储在 Map 中的指定元素,可以调用 Map 实例的 get() 方法,将该元素的键作为参数传递给 get() 方法,获取对应的值。

Map map = new HashMap();

map.put("key1", "value 1");

String element1 = (String) map.get("key1");
复制代码

get() 方法会返回一个 Java 对象,因为创建 Map 时没有使用泛型限制Map 的键和值的类型,所以返回的是 Object 类的对象,使用时还需要对其进行类型转换。

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

map.put("key1", "value 1");

String element1 = map.get("key1");
复制代码

如果我们使用泛型为 Map 的键和值指定具体类型,就不再需要转换 get() 方法返回的对象。

getOrDefault

getOrderDefault() 方法的第二个参数可以指定一个默认值,用来在 Map 中不存在给定 Key 的时候,作为默认值进行返回。

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

map.put("A", "1");
map.put("B", "2");
map.put("C", "3");

String value = map.getOrDefault("E", "default value");
复制代码

检查 Map 中是否存在给定 Key

可以使用 containsKey() 方法检查 Map 是否包含给定的键。

boolean hasKey = map.containsKey("123");
复制代码

如果 map 中存在字符串键"123"的键值对,则 hasKey 变量为 true,否则为 false。

检查 Map 中是否存在给定 Value

Map 接口还有一个 containsValue() 方法可以检查 Map 是否包含某个值。

boolean hasValue = map.containsValue("value-a");
复制代码

如果 Map 存储的键值对中有 "value-a" 这个值,那么 hasValue 变量为 ture,否则为 false。

遍历 Map 的 Key

有三种常用的遍历 Map 的所有 Key 的方式:

  • 使用从 keySet() 获取的迭代器。
  • 使用 for-each 循环遍历 KeySet
  • 使用 Stream API

Map 的 keySet() 方法返回的是一个 Set 数据结构,在之前的章节已经讲过,它实现了 Iterable 接口,且提供了获取 Iterator 的方法,所以这里三种遍历的 Set 方式我们在之前 Set 的章节都已经细讲过,这里直接看一下遍历的例程。

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

map.put("one", "first");
map.put("two", "second");
map.put("three", "third");

// 使用迭代器遍历 Map 的 Key
Iterator<String> iterator = map.keySet().iterator();

while(iterator.hasNext(){
  String key   = iterator.next();
  String value = map.get(key);
}
 
// 使用 for-each 循环遍历 Map 的 Key
for(String key : map.keySet()) {
    String value = map.get(key);
}
      
// 使用 Stream API
Stream<String> stream = map.keySet().stream();
stream.forEach((value) -> {
    System.out.println(value);
});    
复制代码

遍历 Map 的 Value

遍历 Map 的 Value 的方式与 Key 的类似,Map 的 values() 方法会返回Map中所有值组成的集合,所以常用的遍历方式也是那三种。

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

map.put("one", "first");
map.put("two", "second");
map.put("three", "third");

// 使用迭代器遍历 
Iterator<String> iterator = map.values().iterator();

while(iterator.hasNext()) {
    String nextValue  iterator.next();
}

// 使用 for-each 循环遍历
for(String value : map.values()){
    System.out.println(value);
}

// 使用 Stream API
Stream<String> stream = map.values().stream();
stream.forEach((value) -> {
    System.out.println(value);
});
复制代码

遍历 Map 的键值对

在开头我们解释 Map 类族层级图时,我们说过在 Map 类族中,用 Map.Entry 接口表示单个键值对实体,Map 接口中有一个 entrySet() 方法可以返回 Map 中的所有键值对组成的 Set 集合。

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

map.put("one", "first");
map.put("two", "second");
map.put("three", "third");


// 通过迭代器遍历 所有Map.Entry 
Set<Map.Entry<String, String>> entries = map.entrySet();

Iterator<Map.Entry<String, String>> iterator = entries.iterator();

while(iterator.hasNext()) {
    Map.Entry<String, String> entry = iterator.next();
    String key   = entry.getKey();
    String value = entry.getValue();
}

// 使用 for-each 循环遍历所有 Map.Entry
for(Map.Entry<String, String> entry : map.entrySet()){
    String key = entry.getKey();
    String value = entry.getValue();
}
复制代码

注意,遍历键值对是,需要通过 Map.Entry 的实例的 getKey() 和 getValue() 方法才能获取到键和值。

从 Map 中删除条目

可以通过调用 remove(Object key) 方法删除 Map 中键为 key 参数指定值的键值对条目。

map.remove("key1");
复制代码

上面的程序执行后,变量 map 引用的 Map 将不再包含键 "key1" 对应的条目(键值对)。

remove() 方法是删除键对应的单个条目,如果想要清空 Map 中的所有条目,可以通过 Map 实例调用 clear() 方法进行清空。

map.clear();
复制代码

replace方法-存在则替换

使用 replace() 方法可以替换 Map 实例中的元素。

map.replace(key, value)
复制代码

可能有人会说,直接调用 put 方法把键对应的新值存储到 Map 实例里不就是更新了吗? 其实 replace() 方法除了提供更新键值的基础功能外,还提供了存在则替换的特性,什么意思呢?如果replace() 方法的 key 参数指定的键在 Map 中已经存在对应的键值对,则 replace() 方法会把键值对的值更新成 value 参数指定的值。如果在 Map 里没有值映射到给定键,则不会插入任何值。

Map map = new HashMap<>();

map.replace("key", "val2"); // map 中还没有"key"对应的条目, 不更新

map.put("key", "val1");     // 向 map 中存入 "key" ==> "val1" 条目

map.replace("key", "val2"); // 将条目更新成 "key" ==> "val2"
复制代码

获取 Map 包含的键值对数量

使用 size() 方法可以获取到 Map 中的条目数。

int entryCount = map.size();
复制代码

检查 Map 是否为空

Map 接口有一个特殊的方法来检查 Map 是否为空。这个方法是 isEmpty(),如果 Map 实例包含 1 个或多个条目,isEmpty() 方法将返回 false。如果 Map 不包含条目,isEmpty() 将返回 true。

if (map.isEmpty()) {
    // do something...
}
复制代码

把对象List 转化为 Map

真实开发场景下用到 List 转换成 Map的操作时,往往是把对象 List 转换成 以对象ID为 Key 的Map,这种情况下我们可以用下面这个程序进行转换,当然Key不一定非得是对象的ID,换成Name 之类的属性值也是同样方法进行转换。

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

public class ListStreamToMap {


    public static void main(String[] args) {
        List<Animal> aList = new ArrayList<>();
        aList.add(new Animal(1, "Elephant"));
        aList.add(new Animal(2, "Bear"));

        Map<Integer, Animal> map = aList.stream()
                .collect(Collectors.toMap(Animal::getId, Function.identity()));

        map.forEach((integer, animal) -> {
            System.out.println(animal.getName());
        });

    }
}
复制代码

总结

这篇文章给大家盘点了一下 Map 的整个体系中都有哪些实现类,并针以最常使用的 HashMap 为切入点,介绍了 Map 这种数据结构在开发中常会使用到的功能。

这篇文章主要是让新手快速入门或者是让老手在开发中快速查询参考,对于 Map 底层的数据结构实现、怎么解决哈希碰撞、怎么扩容这些并没涉及,这块面试的时候还精彩被问到,在会使用 Map 的基础上,一定要再看看这方面的知识。

这里介绍的 Map 都是并发不安全的容器,在多线程环境下不能使用,JUC 里的 ConcurrentHashMap 是 Java 专门针对多线程并发环境提供的 Map 类并发容器,具体怎么使用等到后面学习 JUC 和并发容器的时候我们再细讲。


 

YOLOv8-seg模型后处理实战:从输出解析到mask生成的完整流程 本文详细解析了YOLOv8-seg实例分割模型的后处理完整流程,从理解output0与output1的双输出结构,到实现检测框的置信度过滤、坐标转换与NMS,再到核心的掩膜生成数学原理与矩阵乘法实现。文章深入探讨了如何将掩膜系数与原型掩膜库结合,生成像素级分割结果,并提供了掩膜上采样、边缘优化、性能提升及解决实际应用难题的实战方案。 阅读详情

相关推荐

树莓派通过TTL3.3转485 Modbus采集水表

所需道具 树莓派0,我用的是树莓派zero wh; 具有光电直读功能的有线水表,我用的是咸鱼淘的埃美柯LXSY-20E1; TTL3.3 转 485模块,带隔离的贵些; 5V转12V升压模块。 原理 树莓派有UART(GPIO14 Tx 和 GPIO15 Rx)串口通讯功能,电器特性是3.3V TTL,直读远传水表支持M-Bus/485通讯接口,我买的光电直读水表485要求12V供电(根据仪表厂家说明书)。TTL和485虽然都是串口通讯,但电器特性不一样,不能直接接!我已经烧掉一个树莓派...

xhydongda的博客 3443

Java中Map使用方法总结

在Java中,Map元素存储在键/值对中, Map是接口,因此无法从中创建对象。为了使用Map接口的功能,可以使用以下几种类。下面代码是 Map的常见用法总结。

haikuotiankong7的博客 1144

Ubuntu 22.04 搭建 PX4 飞控系统完全指南:从仿真到硬件试飞

定义消息文件protobufuint64 timestamp # 时间戳float32 temperature # 温度float32 humidity # 湿度生成代码:bashPX4 在 Ubuntu 22.04 的搭建涉及环境配置、编译仿真、硬件连接等多环节,核心是理解 PX4 1.14 的新特性(uXRCE-DDS、动态控制分配)。通过本文指南,开发者可快速构建稳定的 PX4 开发环境,为无人机应用开发奠定基础。

zqmgx13291的博客 3045

[Java]Map集合的基础用法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 #博学谷IT学习技术支持 文章目录 前言 一、Map集合概述 二、哈希值与结构 三、基础功能 四、Map集合获取方法 五、Map集合的两种遍历方法 前言 个人学习笔记,欢迎指出任何错误,提供建议。 我的文章都将随着个人学习深入而定期更新。 以最简单的办法讲明方法和概念 提示:以下是本篇文章正文内容,下面案例可供参考 一、Map集合概述 数据结构是哈希表 存取无序 不可以存储重复.

weixin_46784189的博客 585

GLM-5.2模型自部署实战:如何通过量化与vLLM优化实现远超官方API的推理速度

在大模型应用开发中,模型推理速度是影响用户体验和系统性能的核心指标。其原理在于通过优化计算图、内存管理和并行计算来提升吞吐量与降低延迟。技术价值体现在能够为高并发、低延迟的实时应用提供稳定高效的AI服务能力,广泛应用于智能客服、代码生成、内容创作等场景。其中,模型量化通过降低权重精度(如INT4/INT8)来大幅减少显存占用和计算量,而推理引擎(如vLLM)则通过连续批处理和PagedAttention等技术最大化硬件利用率。本文聚焦于GLM-5.2模型,详细阐述如何通过量化技术与vLLM推理引擎的深度优化

weixin_29032337的博客 319

华为私有云HCS 8.1.1实战:从镜像制作到云主机发放全流程指南

本文详细解析了华为私有云HCS 8.1.1从镜像制作到云主机发放的全流程实战指南。内容涵盖制作标准化QCOW2镜像、配置云主机规格与主机组、规划外部网络,以及在运营面为租户初始化资源、配置审批流与产品目录。最后,通过用户视角演示了从创建VPC网络到申请、审批并最终绑定EIP访问云主机的完整操作步骤,为运维人员和架构师提供了一套清晰、可落地的HCS部署与管理实践方案。

weixin_29305313的博客 1129

Java-Map基本用法

Java-Map用法

ksrxy的博客 1938

5分钟搞定!用FunASR在本地快速部署达摩院Paraformer语音识别模型(附常见问题解决)

本文详细介绍了如何在本地快速部署阿里达摩院开源的Paraformer语音识别模型。通过FunASR工具包,用户可在5分钟内完成环境配置、模型下载与基础识别,并掌握批量处理、性能调优及构建API服务等进阶技巧。文章重点解析了Paraformer的非自回归架构带来的速度优势,并提供了音频格式转换、依赖冲突、显存不足等常见问题的实战解决方案,助力开发者实现高效、离线的语音转写应用。

p1q2r的博客 708

Java中HashMap里面的getOrDefault() 方法的使用

作用:getOrDefault() 方法获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值。

qq_53130059的博客 1074

Win10系统安装Ubuntu虚拟机,这回真的是零基础!(结尾附NS3的配置)

Win10系统安装Ubuntu虚拟机(结尾附NS3的配置) 序幕 本人现在还在念大二,有一门很有趣而且老师讲得也不错的课程《计算机网络原理》。这周老师布置了一个实验《NS3网络模拟》,为了详细记录本次实验过程,顺便也便于自己复习,就写了这篇博客,希望能够对你有帮助! NS3是什么呢?实际上就是一门算法,和计算机网络有关的。不过在我们日常使用的Windows系统上去做这个实验是行不通的,这个实验一定要在Linux系统上进行模拟才能玩的下去,作为一名 Windows选手对此表示不爽但是没办法,为了实验也只

灼热之翼的博客 7386

UG\NX二次开发 替换部件引用集UF_ASSEM_replace_refset

替换部件引用集UF_ASSEM_replace_refset,需要替换成“完整部件(Entire Part)”需要第三个参数传入空指针或者空字符串。

王牌飞行员_里海的博客 255

getOrDefault()方法

本文简单介绍了getOrDefault()方法的使用和举例,使用getOrDefault()实在是很方便简洁啦,并且性能高于先containsKey后get。

Java程序媛,欢迎大家一起交流学习~ 9528

10分钟搞定manim安装与vscode配置

manim安装与vscode配置

帅帅de三叔 3413

【Java 基础篇】Java Map 详解

Map接口是一个键值对的集合,它继承自Collection接口中的size()和isEmpty()等方法,同时还提供了根据键查找值的方法,以及添加、删除和更新键值对的方法。在Java中,Map接口有几个常见的实现类,每个实现类都具有不同的性能和用途。HashMap:基于哈希表实现,具有快速的查找和插入操作,适用于需要快速查找键值对的场景。TreeMap:基于红黑树实现,可以对键进行排序,并提供了一系列与排序相关的方法,适用于需要对键进行排序的场景。

繁依Fanyi的博客 4万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java 集合全教程—Map

Map是将关键点映射到值的对象。映射不能包含重复的关键点:每个关键点最多可以映射到一个值。它对数学函数抽象进行建模。Map接口包括基本操作(如put、get、remove、containsKey、containsValue、size和empty)、批量操作(如putAll和clear)和集合视图(如keySet、entrySet和values)的方法。Java平台包含三个通用的Map实现:HashMap、TreeMap和LinkedHashMap。

mh17680313750的博客 915

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[基础篇]-java8之Map遍历5种方式

准备测试数据 private static Map<String, Object> map = new HashMap<>(); static { map.put("1001", "value1"); map.put("1002", "value2"); map.put("1003", "value3"); map.put("1004", 1004); map.put("1005", 1005); } 1.通过Map.entrySet遍历

程序员小强的博客 1万+

java基础篇:map

HashMap是Map接口最常用的实现类,它基于哈希表(Hash Table),支持快速的插入、删除和查找操作。允许null键和null值。无序存储,元素的存储顺序可能会发生变化。线程不安全,需要使用 Collections.synchronizedMap()或 ConcurrentHashMap来保证线程安全。是HashMap的子类,与HashMap的主要区别是它维护了元素的插入顺序。TreeMap是基于红黑树(Red-Black Tree)实现的Map自动排序TreeMap的 key。

x² 1091

工作中需要用到的Java知识(集合篇)

工作中需要用到的Java知识(二) 上一篇我提到了基本数据类型,引用数据类型String,还有StringBuffer和StringBuilder的作用与区别,这些内容是我们在进行开发中经常会用到的内容,当我们了解了这些之后我们应该了解一下集合 其实在集合之前我们还有一些其他的内容,但是我这个可能是单纯的复习,不是系统的学习,所以一些内容就不说了,如果有大佬有更深的理解或更好的内容,请分享给我,谢谢啦。 1.集合类型 集合在工作中也经常会遇见,其实Java语言进行WEB后端开发的时候,全都是数据库内容的增删

虚心学习,和气编码 729

Snipaste贴图软件及其快捷键使用方法

Snipaste贴图软件及其快捷键使用方法 你还在用QQ或者微信的截图吗?你还在为你的一步一步进入聊天工具、截图、保存至本地、打开需要插入图片的应用再来使用图片吗?你还在苦苦寻找便捷的截图软件却发现它并不好用吗?你就请来看看这篇关于Snipaste贴图软件的博文吧! 截图软件,请认准Snipaste 初识snipaste是代理Java老师使用的,在他近乎大佬的操作下,我也如愿以偿地使用到了这个便捷而强大的软件。 Snipaste是一个简单但强大的贴图软件,同时也可以执行截屏、标注等功能。 话不多说,放下载官

qq_46509219的博客 1万+

Java Map基础篇

Java Map基础篇

似霰的博客 1184

Java数据结构Map的常用功能

Java数据结构—Map 常用功能 添加功能: map.put(key,value); //添加元素或者修改value的值 删除功能 map.remove(key); 根据key的值删除对应value并且返回value map.clear(); 清除所有的对应关系 判断功能 map.isEmpty(); 判断是否没有对应关系 map.size(); 判断有几种对应关系 map.containsKey(1001); 判断指定key的值是否存在 map.containsValue("王五") 判断指定val

酒涩博客 5529

用dom4j做的xml和Java的Map互转

网上找不到一个能用的工具类,于是决定自己动手丰衣足食 欢迎吐槽不足之处 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentHelper; i...

Sunssnew的博客 1167

java map包_java Map

java MapCreateTime--2017年5月26日08:44:16Author:Marydon四、java数据类型之Map需要导入包:importjava.util.Map;import java.util.HashMap;(一)数据格式1.1 Map与HashMap{FHIGHPRICE_VILLLEVE=0, FSTATUS=1, FPROVLEVELLIMIT=1, FBEGIND...

weixin_33002763的博客 3790

Java之项目用到类Objects,TreeMap排序简单分享

开心一笑【记者去采访一山区百岁老农: “老人家,你是吃什么东西才能保持长寿的啊?” 百岁老农: “我们这只能种玉米,平时也是以玉米为主食。” 记者: “那你现在最大的愿望是什么呢”。 百岁老农: “我最想死。” 记者: “啊!为什么?” 百岁老农:“吃了一百年的玉米,你不想死啊?”】提出问题项目常用类Objects,TreeMap分享???解决问题1.Objects介绍Java.Util.

IT技术分享 2293
上一篇: 聊一聊安全且正确使用缓存的那些事 —— 关于缓存可靠性、关乎数据一致性
下一篇: 堪称一站式管理平台,同时支持Linux、MySQL、Redis、MongoDB可视化管理
java小姜在线冲
博客等级 码龄4年 53粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值