Java-map容器

简介:

Map集合接口

Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。

主要方法:

void clear( )从此映射中移除所有映射关系(可选操作)
void putAll(Map m)从指定映射中将所有映射关系复制到此映射中(可选操作)

boolean containsKey(Object k)如果此映射包含指定键的映射关系,则返回 true
boolean containsValue(Object v)如果此映射将一个或多个键映射到指定值,则返回 true
boolean isEmpty( )如果此映射未包含键-值映射关系,则返回 true
boolean equals(Object obj)比较指定的对象与此映射是否相等

Set entrySet( )返回此映射中包含的映射关系的 Set 视图

Object get(Object k)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
Object put(Object k, Object v)将指定的值与此映射中的指定键关联(可选操作)
Object remove(Object k)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)

int hashCode( )返回此映射的哈希码值
int size( )返回此映射中的键-值映射关系数

Set keySet( )返回此映射中包含的键的 Set 视图

Collection values( )返回此映射中包含的值的 Collection 视图

HashMap类

  
HashMap是非同步的,并且允许null,即null value和null key,但是只能有一个null Key,因为Key是不能重复的,查询的效率比较高,默认初始容量 (16) 和默认加载因子 (0.75) ,底层是数组+链表实现的,JKD1.8底层是数组+链表+红黑树

注意:LinkedHashMap可以按照存入元素顺序存储。

TreeMap类

  
TreeMap继承Map接口,排序根据红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。

HashMap和Hashtable的区别?

HashMap继承于AbstractMap类,Hashtable继承于Dictionary类
HashMap可以有 null key 和 null value,Hashtable不允许有null key 和 null value
HashMap是非线性安全的,Hashtable是线性安全的
HashMap默认的初始化大小为16,之后每次扩充,容量变为原来的2倍;Hashtable默认的初始大小为11,之后每次扩充,容量变为原来的2n+1。

相关文章
|
25天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
39 3
|
25天前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
79 3
|
25天前
|
存储 安全 Java
Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
【10月更文挑战第17天】Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
52 2
|
25天前
|
存储 Java
告别混乱!用Java Map优雅管理你的数据结构
【10月更文挑战第17天】在软件开发中,随着项目复杂度增加,数据结构的组织和管理至关重要。Java中的Map接口提供了一种优雅的解决方案,帮助我们高效、清晰地管理数据。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,有效提升了代码质量和维护性。
80 2
|
25天前
|
存储 Java 开发者
Java Map实战:用HashMap和TreeMap轻松解决复杂数据结构问题!
【10月更文挑战第17天】本文深入探讨了Java中HashMap和TreeMap两种Map类型的特性和应用场景。HashMap基于哈希表实现,支持高效的数据操作且允许键值为null;TreeMap基于红黑树实现,支持自然排序或自定义排序,确保元素有序。文章通过具体示例展示了两者的实战应用,帮助开发者根据实际需求选择合适的数据结构,提高开发效率。
57 2
|
25天前
|
存储 缓存 安全
HashMap VS TreeMap:谁才是Java Map界的王者?
HashMap VS TreeMap:谁才是Java Map界的王者?
65 2
|
25天前
|
存储 Java API
键值对魔法:如何优雅地使用Java Map,让代码更简洁?
键值对魔法:如何优雅地使用Java Map,让代码更简洁?
101 2
|
16天前
|
存储 Java API
Java交换map的key和value值
通过本文介绍的几种方法,可以在Java中实现Map键值对的交换。每种方法都有其优缺点,具体选择哪种方法应根据实际需求和场景决定。对于简单的键值对交换,可以使用简单遍历法或Java 8的Stream API;对于需要处理值不唯一的情况,可以使用集合存储或Guava的Multimap。希望本文对您理解和实现Java中的Map键值对交换有所帮助。
19 1
|
23天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第19天】本文介绍了Java编程中重要的数据结构——Map,通过问答形式讲解了Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的使用和性能优化技巧,适合初学者和进阶者学习。
40 4
|
23天前
|
存储 Java API
优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。
【10月更文挑战第19天】本文介绍了如何优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。内容包括Map的初始化、使用Stream API处理Map、利用merge方法、使用ComputeIfAbsent和ComputeIfPresent,以及Map的默认方法。这些技巧不仅提高了代码的可读性和维护性,还提升了开发效率。
45 3