Java之Map接口

简介:

    Map 集合是用来存储 “键(K)-(V)”映射对的集合。它是一个接口。它的实现类中,存储“键(K)-(V)”映射对是通过键来唯一标识,Map 底层的“键(K)”是用Set来存放的。所以自定义的类,存放在Map的实现类中,需要重写hashCode  equals 方法。

      常用的实现类:HashMapTreeMapHashTable

HashMapHashTableTreeMap的区别:

HashMap1、线程不安全的,不同步的

2、能最多存储一个null键,任意多个null

3、有containsKey(),containsValue()方法,没有contains() 方法

3、继承AbstractMap<K,V>

Hashtable1、线程安全的,同步的。

2、不能有null也不能有null,否则运行时出空指针异常;

3基于陈旧的Dictionary<K,V> ,contains() 方法,用于测试此映射表中是否存在指定值,等同于HashMap类中的containsValue()(本类中也有)

TreeMap:线程不安全的,不同步的。存入的元素的Key,必须是“可比较的”,因为它的key底层使用TreeSet来实现的,即存入的元素必须实现java.lang.Comparable<T>接口,或者是在创建TreeMap对象是指定一个实现java.util.Comparator<T>接口比较器。参考文档JDK API 1.6

Map接口中定义的方法(只列举常用的):

booleancontainsKey(Object key):判断集合Key中是否包含传入的key.

booleancontainsValue(Object value): 判断集合value中是否包含传入的value值。

V get(Object key):根据key得到指定的值。

boolean isEmpty():判断集合是否为空。

V put(K key, Vvalue):将键-值对存入集合中,返回的是value类型的旧值。如果原先没有值,会返回null

V remove(Objectkey):删除指定的键-值对

int size():返回集合的大小。

void clear():清空集合中的所用内容。

Set<K> keySet();//返回Key的集合,用于遍历Map集合。


本文转自 墨宇hz 51CTO博客,原文链接:http://blog.51cto.com/zzhhz/1623964


相关文章
|
1月前
|
Java
【Java】一个简单的接口例子(帮助理解接口+多态)
【Java】一个简单的接口例子(帮助理解接口+多态)
17 0
|
1月前
|
Java
JAVA接口
JAVA接口
13 0
|
2天前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关
|
8天前
|
Java 开发者
探索 Java 的函数式接口和 Lambda 表达式
【4月更文挑战第19天】Java 中的函数式接口和 Lambda 表达式提供了简洁、灵活的编程方式。函数式接口有且仅有一个抽象方法,用于与 Lambda(一种匿名函数语法)配合,简化代码并增强可读性。Lambda 表达式的优点在于其简洁性和灵活性,常用于事件处理、过滤和排序等场景。使用时注意兼容性和变量作用域,它们能提高代码效率和可维护性。
|
8天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
14 0
Java接口中可以定义哪些方法?
|
10天前
|
设计模式 Java
Java接口与抽象类
Java接口与抽象类
17 0
|
14天前
|
存储 算法 安全
Java Map:键值对的奇妙之旅
Java Map:键值对的奇妙之旅
42 0
Java Map:键值对的奇妙之旅
|
14天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
35 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
16天前
|
存储 Java
java接口和内部类
java接口和内部类
|
18天前
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function&lt;T, R&gt;`用于转换操作,`Predicate&lt;T&gt;`用于布尔判断,`Consumer&lt;T&gt;`用于消费输入,`Supplier&lt;T&gt;`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
30 0