java中常用的数据结构--Map

一、定义:

  将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值。

public interface Map<K,V>

  请注意!!!, Map 没有继承 Collection 接口, Map 提供 key 到 value 的映射,你可以通过“键”查找“值”。一个 Map 中不能包含相同的 key ,每个 key 只能映射一个 value 。 Map 接口提供 3 种集合的视图, Map 的内容可以被当作一组 key 集合,一组 value 集合,或者一组 key-value 映射。

  Map的API  

void clear()
从该地图中删除所有的映射(可选操作)。  

boolean containsKey(Object key)
如果此映射包含指定键的映射,则返回 true 。 

boolean containsValue(Object value)
如果此地图将一个或多个键映射到指定的值,则返回 true 。  

Set<map.entry<k,v>> entrySet()
返回此地图中包含的映射的Set视图。  

V get(Object key)
返回到指定键所映射的值,或 null如果此映射包含该键的映射。  

boolean isEmpty()
如果此地图不包含键值映射,则返回 true 。  

Set<k> keySet()
返回此地图中包含的键的Set视图。  

V put(K key, V value)
将指定的值与该映射中的指定键相关联(可选操作)。  

void putAll(Map<!--? extends K,? extends V--> m)
将指定地图的所有映射复制到此映射(可选操作)。

V remove(Object key)
如果存在(从可选的操作),从该地图中删除一个键的映射。  

default boolean remove(Object key, Object value)
仅当指定的密钥当前映射到指定的值时删除该条目。  

default V replace(K key, V value)
只有当目标映射到某个值时,才能替换指定键的条目。  

default boolean replace(K key, V oldValue, V newValue)
仅当当前映射到指定的值时,才能替换指定键的条目。  

int size()
返回此地图中键值映射的数量。  

Collection<v> values()
返回此地图中包含的值的Collection视图。
</v></k></map.entry<k,v>

Map中还包括一个内部类Entry,该类封装了一个key-value对。Entry包含如下三个方法:

  K getKey()

  返回与此条目相对应的键。 

  V getValue()

  返回与此条目相对应的值。 

  V setValue(V value)

  用指定的值替换与该条目相对应的值(可选操作)

二、实现Map接口的子类

1、TreeMap : http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928

2、HashMap : http://www.cnblogs.com/skywang12345/p/3310835.html

3、HashTable: http://www.cnblogs.com/skywang12345/p/3310887.html

4、Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析:http://www.importnew.com/28263.html

三、集合系列的学习

  http://www.cnblogs.com/skywang12345/p/3323085.html

原文地址:https://www.cnblogs.com/dongtian-blogs/p/10861463.html

时间: 2024-08-26 10:53:35

java中常用的数据结构--Map的相关文章

java中常用的数据结构--Collection接口及其子类

java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.集合和数组的区别 二.Collection集合和Map集合 三.Collection接口 1.定义 public interface Collection<E> extends Iterable<E> {} 它是一个接口,是高度抽象出来的集合,它包含了集合的基本操作:添加.删除.清空.遍历(读取).是否为空.

开发java中常用的几种数据类型

JAVA中常用的数据结构(java.util. 中) java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类.其主要的关系(继承关系)有:  (----详细参见java api文档!) Collection---->Collections                                                                          

【知了堂学习笔记】java中常用集合的理解

最近学习了java中常用集合类的一些知识,在这里作为一只小白,我来谈谈我的理解,顺带总结知识点. 引入:在没有接触之前,听到集合,给我感觉是想到了数学中的集合一样,里面存放着一个一个的元素.其实不然,这个集合也就差不多,是用来存放元素的容器. Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成. 今天我要谈的主要是,如下图所示: 1.Collection Collection是最基本的集合类型,若要检查Collection中的元素,可以使

java中常用的工具类(二)

下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Java中的Collection和Map(二)--List体系

正如我们在Java中的Collection和Map(一)中所看到的那样,我们经常使用的有ArrayList.LinkedList.Vector.Stack.这里不再累述它们的使用方法,这里主要是说一下他们的底层结构以及使用时机. 1.ArrayList 我们都知道ArrayList是我们经常使用的List集合之一.我们在使用的时候经常通过 new ArrayList() 方法来创建一个ArrayList集合,然后调用它的 add(E e) 方法向集合中存储元素.那么你是否了解当我们使用 new

java中常用的工具类

一.String工具类 package com.itjh.javaUtil; import java.util.ArrayList; import java.util.List; /** * * String工具类. <br> * * @author 宋立君 * @date 2014年06月24日 */ public class StringUtil { private static final int INDEX_NOT_FOUND = -1; private static final St

java中常用的工具类(三)

继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

java中常用的工具类(一)

我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工具类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5

java中常用的包、类、以及包中常用的类、方法、属性-----io包

由于最近有需要,所以下面是我整理的在开发中常用的包.类.以及包中常用的类.方法.属性:有需要的看看 java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.math.*; java.sql.*; java.text.*; java.awt.*; javax.swing.*;   包名 接口 类 方法 属性 java.io.*; java.io.Serializable实现序列化 java.io.Buffe