首页 > 编程语言 >Java中Map的各种用法

Java中Map的各种用法

时间:2022-12-27 20:01:38浏览次数:42  
标签:Map Java map System 用法 输出 println out

Hello,我是CoderBug,今天我们来学习Java里面的Map

1.什么是Map?

Map是Java中的一种常见的数据结构,用于存储键值对。Map的实现类有很多,常见的有HashMap、TreeMap和LinkedHashMap等。Map的使用非常方便,可以通过键来快速查找和修改对应的值。

2.Map的基础操作有哪些呢?

Map的基本操作包括:

  1. put(key, value):向Map中添加一个键值对。如果Map中已经存在该键,则会将原来的值替换为新值。
  2. get(key):根据键获取对应的值。如果Map中不存在该键,则返回null。
  3. remove(key):根据键删除对应的键值对。如果Map中不存在该键,则返回null。
  4. size():获取Map中键值对的数量。
  5. isEmpty():判断Map是否为空。
  6. containsKey(key):判断Map中是否包含指定的键。
  7. containsValue(value):判断Map中是否包含指定的值。
  8. keySet():获取Map中所有键的集合。
  9. values():获取Map中所有值的集合。
  10. entrySet():获取Map中所有键值对的集合。

3.常用的Map区别在哪?

Map的实现类之间的区别主要体现在存储结构、查找性能、排序方式等方面。

  • HashMap是一种哈希表实现的Map,它的存储结构是散列表,可以通过哈希函数快速查找键值对。HashMap的查找性能很高,但是它不保证键值对的顺序,因此如果需要按照键或值的顺序遍历Map中的元素,可能需要使用其他的Map实现类。
  • TreeMap是一种二叉树实现的Map,它的存储结构是红黑树。TreeMap可以按照键的升序或降序遍历Map中的元素,因此如果需要按照键的顺序遍历Map中的元素,可以使用TreeMap。但是TreeMap的查找性能较低,如果需要高效的查找,可以使用HashMap或其他的Map实现类。
  • LinkedHashMap是一种链表哈希表实现的Map,它的存储结构是双向链表和散列表的结合。LinkedHashMap可以按照键值对插入的先后顺序遍历Map中的元素,也可以按照键的升序或降序遍历Map中的元素。LinkedHashMap的查找性能比TreeMap略低,但是比HashMap略高。

4.案例演示

HashMap示例:

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

public class HashMapExample {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("Alice", 1);
map.put("Bob", 2);
map.put("Eve", 3);
System.out.println(map); // 输出{Alice=1, Bob=2, Eve=3}
System.out.println(map.get("Alice")); // 输出1
System.out.println(map.remove("Bob")); // 输出2
System.out.println(map.size()); // 输出2
System.out.println(map.isEmpty()); // 输出false
System.out.println(map.containsKey("Alice")); // 输出true
System.out.println(map.containsValue(2)); // 输出false
}
}

TreeMap示例:

import java.util.Map;
import java.util.TreeMap;

public class TreeMapExample {
public static void main(String[] args) {
Map<String, Integer> map = new TreeMap<>();
map.put("Alice", 1);
map.put("Bob", 2);
map.put("Eve", 3);
System.out.println(map); // 输出{Alice=1, Bob=2, Eve=3}
System.out.println(map.get("Alice")); // 输出1
System.out.println(map.remove("Bob")); // 输出2
System.out.println(map.size()); // 输出2
System.out.println(map.isEmpty()); // 输出false
System.out.println(map.containsKey("Alice")); // 输出true
System.out.println(map.containsValue(2)); // 输出false
}
}

LinkedHashMap示例:

import java.util.LinkedHashMap;
import java.util.Map;

public class LinkedHashMapExample {
public static void main(String[] args) {
Map<String, Integer> map = new LinkedHashMap<>();
map.put("Alice", 1);
map.put("Bob", 2);
map.put("Eve", 3);
System.out.println(map); // 输出{Alice=1, Bob=2, Eve=3}
System.out.println(map.get("Alice")); // 输出1
System.out.println(map.remove("Bob")); // 输出2
System.out.println(map.size()); // 输出2
System.out.println(map.isEmpty()); // 输出false
System.out.println(map.containsKey("Alice")); // 输出true
System.out.println(map.containsValue(2)); // 输出false
}
}

如有帮助,麻烦点个赞,如有错误请指出,我是CoderBug,一个跟你一样追风的少年!

标签:Map,Java,map,System,用法,输出,println,out
From: https://blog.51cto.com/u_15921635/5973471

相关文章

  • STL库之map映射基础知识
    前言:映射是指两个集合之间的元素相互对应关系。通俗地说,就是一个元素对应另外一元素。我们称其中的姓名集合为关键字集合(key),班级集合为值集合(value)。注意一个key不能对应多......
  • Java难点 | Collections集合工具类
    Collections集合工具类addAll和shuffle方法代码示例/*publicstatic<T>booleanaddAll(collection<T>c,T...elements):往集合添加多个元素publicstatic......
  • hdu: What Are You Talking About(map应用)
    ProblemDescriptionIgnatiusissoluckythathemetaMartianyesterday.Buthedidn’tknowthelanguagetheMartiansuse.TheMartiangiveshimahistoryb......
  • 30_Java中的反射
    Java中的反射一、类加载器1、类加载:类加载的描述​ 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三......
  • 如何用JAVA调用服务器系统指令
    java在企业级项目开发中,无论是强制性的功能需要,还是为了简便java的实现,需要调用服务器命令脚本来执行。在java中,RunTime.getRuntime() .exec() 就实现了这个功能。 用法:......
  • 如何对生产环境的JAVA应用进行远程调试
    JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。 1.在服务器上的进程启动参数......
  • JAVA各种引用(Reference)的汇总
    HardReference强引用一般的人一般的程序最常用的引用SoftReference软引用除非JVM即将OutOfMemory,否则不会被GC回收。这个特性使得它特别适合设计对象Cache。对于Cache,我们......
  • Web项目如何引用其他java项目
    Web项目为DynamicWebProject,Tomcat插件下载地址:http://tomcatplugin.sf.net/update1.将tomcatplugin插件中的DevloaderTomcat7.jar拷贝到tomcat安装目录下的lib文件......
  • Java与C通信要注意的几个问题
    1.大尾(big_endian)小尾(little_endian)的问题基于Web的测试软件是由C++数据采集服务器程序和客户端Java显示程序两部分构成,前者用C++,后者Java语言,存在数据移植问题。因为......
  • Java和MySQL数据类型对应一览
    Table 20.25. MySQLTypestoJavaTypesforResultSet.getObject()MySQLTypeNameReturnvalueofGetColumnClassNameReturnedasJavaClassBIT(1) (new......