J2EE集合之map集合

简介: J2EE集合之map集合

一.map集合的特点

  1. 键值对存储:Map集合内部维护了一个键值对的数据结构,使用键来访问对应的值。

    2.键的唯一性:Map中的键是唯一的,不能重复,但值可以重复

    3.线程不安全:多个线程同时对一个Map进行操作时,可能会引发线程安全问题

      但是可以使用Hashtable,Hashtable是安全的

    4.遍历方式:Map集合提供了多种遍历方式,包括迭代器、forEach等。

二.map集合的遍历方式

       entrySet:代码测试结果

 

输出结果:

 

 

       keySet:代码测试结果

 

    输出结果:

 

三.常用的实现类Hashmap

        统计字符串各个字母出现的次数

     思路

  1. 定义一个Map来保存每个字母出现的次数,Map的键值对应分别为字母和出现次数。
  2. 遍历字符串中的每个字符,如果该字符不是字母,则跳过。
  3. 如果该字符是字母,判断是否已经出现在Map中。如果出现过,则将出现次数+1;如果没有出现过,则将该字母作为键,出现次数初始值为1存入Map中。
  4. 继续遍历完成后,Map中就保存了字符串中出现的每个字母和对应的出现次数。

代码测试:

输出结果:

 

四.泛型

          泛型的特点:

  1. 类型安全:泛型可以在编冲期间检测类型的正确性,可以避免在运行期出现类型转换异常或者ClassCastException等类型相关错误。
  2. 避免代码重复:泛型可以定义一份代码用于多种类型,避免了因为类型不同而导致的代码重复问题。
  3. 提高代码质量:泛型可以使部分代码结构更加清晰简洁,便于代码维护和复用。
  4. 提高可读性:使用泛型时,代码的意图更加明确,可以增强代码的可读性和可理解性。
  5. 可以使用通配符:泛型支持通配符,例如使用?表示任意类型,这种特点为泛型增强了灵活性。
  6. 会将运行期出现的异常转换为编译期的错误

          编译期:

运行期:

 

           泛型类:

          泛型方法:

 

五.map集合的工具类

     map集合工具类的特点:

  1. 提供了一些常用的Map操作方法:这些工具类提供了一些常用的Map操作方法,例如排序、查找、遍历等操作,方便开发者进行Map集合的操作。
  2. 提供了静态方法:这些工具类中的方法通常都是静态方法,方便在不需要创建对象的情况下就能够调用。
  3. 提高代码重用性:这些工具类方法是通用操作,适用于不同的Map集合实例,因此能够提高代码重用性,避免重复编写代码。
  4. 提高代码可读性:这些工具类方法名通常语义清晰目的明确,能够提高代码可读性和可维护性。
  5. 简化操作:通过这些工具类的方法,能够简化Map集合的操作,使操作更加便捷和高效。
  6. 强类型检查:这些工具类方法通常适用于指定类型的Map集合,能够进行强类型检查,能够保证Map集合的类型安全性。

         Collections:

输出结果:

 

         Arrays:

输出结果:

 

   


目录
相关文章
|
4月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
4月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
5月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
5月前
|
Java
【Java集合类面试二十二】、Map和Set有什么区别?
该CSDN博客文章讨论了Map和Set的区别,但提供的内容摘要并未直接解释这两种集合类型的差异。通常,Map是一种键值对集合,提供通过键快速检索值的能力,而Set是一个不允许重复元素的集合。
|
5月前
|
算法 Java 索引
【Java集合类面试四】、 描述一下Map put的过程
这篇文章详细描述了HashMap中put操作的过程,包括首次扩容、计算索引、插入数据以及链表转红黑树和可能的再次扩容。
【Java集合类面试四】、 描述一下Map put的过程
|
5月前
|
存储
|
5月前
|
安全 Java
【Java集合类面试五】、 如何得到一个线程安全的Map?
如何得到一个线程安全的Map的方法包括:使用Collections工具类将Map包装为线程安全,使用java.util.concurrent包下的ConcurrentHashMap,以及不推荐使用性能较差的Hashtable。
|
5月前
|
安全 Java
【Java集合类面试三】、Map接口有哪些实现类?
这篇文章介绍了Java中Map接口的几种常用实现类:HashMap、LinkedHashMap、TreeMap和ConcurrentHashMap,以及它们适用的不同场景和线程安全性。
|
6月前
|
存储 安全 Java
Java基础之集合Map
【7月更文挑战第8天】Java中的Map集合以键值对方式存储数据,如`Map<"name", "张三">`。Map接口定义了存取、判断、移除等操作,包括`put`、`get`、`containsKey`等方法。HashMap是最常用的实现,基于哈希表,允许null键值,但不保证顺序。其他实现包括同步的Hashtable、处理属性文件的Properties、保持插入顺序的LinkedHashMap、基于红黑树的TreeMap、弱引用的WeakHashMap、并发安全的ConcurrentHashMap和针对枚举优化的EnumMap。
55 4
|
6月前
|
存储 Go 索引
GO 集合 map 使用总结
GO 集合 map 使用总结
48 0