Javase之集合体系(4)之Map集合
集合体系之Map集合
##Map<K,V>( 接口 )
特点:将键映射到值对象,一个映射不能包含重复的键:每个键只能映射一个值
Map集合与Collection集合的区别
Map集合存储元素成对出现,其键唯一值可重复,为双列集合
Collection集合存储元素单独出现,其List子类的元素有序,可重复。其Set子类的元素唯一,为单列集合
注意:
Map集合的数据结构只与键有关,与值无关
Collection集合的数据结构针对元素有效
Map集合功能概述
添加功能
put
V put(K key,V value):将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个
该键的映射关系,则用指定值替换旧值(当且仅当 m.containsKey(k) 返回 true 时,才能说映射 m
包含键 k 的映射关系)。
putAll
void putAll(Map<? extends K,? extends V> m):从指定映射中将所有映射关系复制到此映射中
(可选操作)。对于指定映射中的每个键 k 到值 v 的映射关系,此调用等效于对此映射调用一次
put(k, v)。如果正在进行此操作的同时修改了指定的映射,则此操作的行为是不确定的。
删除功能
clear
void clear():从此映射中移除所有映射关系(可选操作)。此调用返回后,该映射将为空。
remove
V remove(Object key):如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
返回此映射中以前关联该键的值,如果此映射不包含该键的映射关系,则返回 null。
判断功能
containsKey
boolean containsKey(Object key):如果此映射包含指定键的映射关系,则返回 true
containsValue
boolean containsValue(Object value):如果此映射将一个或多个键映射到指定值,则返回 true。
isEmpty
boolean isEmpty():如果此映射未包含键-值映射关系,则返回 true。
获取功能
entrySet
Set<Map.Entry<K,V>> entrySet():返回的是键值对对象集合
import java.util.HashMap;
import java.util.Map;
import java.util.Set; public class map_entrySet {
public static void main(String[] args) {
Map<Integer,Integer> m = new HashMap<>();
m.put(1,11);
m.put(2,22);
m.put(3,33);
m.put(4,44);
m.put(5,55);
//返回一个Set集合,其存储类型为Map.Entry<Integer,Integer>接口
Set<Map.Entry<Integer,Integer>> ent = m.entrySet();
for (Map.Entry<Integer,Integer> ma : ent){
System.out.println(ma.getKey() + "---" + ma.getValue());
}
}
} out:
1---11
2---22
3---33
4---44
5---55
get
V get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
keySet
Set<K> keySet():获取集合中所有键的集合
values
Collection<V> values():获取集合中所有值的集合
长度功能
size
int size():返回集合中键值对的个数
HashMap<K,V>(类)
依赖于哈希表的Map借口实现,哈希表的作用是确保键的唯一性,
无特殊方法
LinkedHashMap<K,V>(类)
是Map接口的哈希表与链表实现,具有可预知的迭代顺序
TreeMap<K,V>(类)
是基于红黑树的Map接口实现。
使用同TreeSet
Hashtable<K,V>(类)
类似于HashMap<K,V>,在HashMap<K,V>出现之前,由于线程安全效率低,所以被HashMap<K,V>替代。
一些问题
Hashtable和HashMap区别
- Hashtable线程安全,效率低,不允许null键和null值
- HashMap:线程不安全,效率高,允许null键和null值
List,Set,Map等接口是否都继承Map接口
- List,Set不是继承自Map接口,它们继承自Collection接口
- Map本身就是一个顶层接口
Javase之集合体系(4)之Map集合的更多相关文章
- 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...
- Java基础(二十三)集合(6)Map集合
Map接口作为Java集合框架中的第二类接口,其子接口为SortedMap接口,SortedMap接口的子接口为NavigableMap接口. 实现了Map接口具体类有:HashMap(子类Linke ...
- 第1节 Scala基础语法:13、list集合的定义和操作;16、set集合;17、map集合
list.+:5 , list.::5: 在list集合头部添加单个元素5 : li1.:+(5):在list集合尾部添加单个元素5: li1++li2,li1:::li2:在li1集合尾部添加il2 ...
- 集合框架—常用的map集合
1.Collections.synchronizedMap() 实现上在调用map所有方法时,都对整个map进行同步,而ConcurrentHashMap的实现却更加精细,它对map中的所有桶加了锁. ...
- Java集合的实现细节—Set集合和Map集合
Set:代表无序.不可重复的集合 Map:代表key-value对集合,也称为关联数组 从表面上看,Set和Map相似性很少,但实际上可以说Map集合时Set集合的扩展. 1.Set集合和Map集合的 ...
- 07java进阶——集合框架3(Map)
1.映射表(Map) 1.1基本概念 1.2Map中常用的方法 package cn.jxufe.java.chapter7; import java.util.HashMap; import jav ...
- 详解 Map集合
(请关注 本人"集合总集篇"博文--<详解 集合框架>) 首先,本人来讲解下 Map集合 的特点: Map集合 的特点: 特点: 通过 键 映射到 值的对象 一个 映射 ...
- 【读书笔记】【深入理解ES6】#7-Set集合和Map集合
ES6新标准中将Set集合和Map集合添加到JS中. ES5中Set集合和Map集合 在ES5中,开发者们用对象属性来模拟这两种集合. var set = Object.create(null); s ...
- java中Map集合的常用方法 (转)
原文地址:https://www.cnblogs.com/xiaostudy/p/9510763.html Map集合和Collection集合的区别 Map集合是有Key和Value的,Collec ...
- java中Map集合的常用方法
Map集合和Collection集合的区别 Map集合是有Key和Value的,Collection集合是只有Value. Collection集合底层也是有Key和Value,只是隐藏起来. V p ...
随机推荐
- SpringBoot2.0 整合 Shiro 框架,实现用户权限管理
本文源码:GitHub·点这里 || GitEE·点这里 一.Shiro简介 1.基础概念 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.作为一款安全 ...
- C#如何判断委托是实例方法还是静态方法
一. 委托的分类 通过用什么类型的方法来声明为委托,可以分为两类: 1. 委托静态方法:把一个静态方法给委托 2. 委托实例方法:把一个实例对象的成员方法给委托 (这两个名字是博主取的,可能不是很专业 ...
- Linux-用户/分组相关以及处理密码遗忘
一.用户创建 1.简单创建 useradd 用户名 2.指定目录创建用户 useradd -d 目录路径 用户名 //注意这一类的目录路径必须写当前所在文件夹的相对路径而不能直接写目录名称 3.指定用 ...
- 使用adb命令操控Android手机(adb命令)
1) 手机连接电脑之前 首先,查看安卓手机是否已经连接上电脑 adb devices 让adb一直查找安卓设备,找到后才停止 adb wait-for-device 2) 手机连接电脑后的操作 2.0 ...
- iOS事件传递和事件响应者链 20170810
一.事件响应者链 事件传递和事件响应链 区别 事件的传递和响应的区别: 事件的传递是从上到下(父控件到子控件),事件的响应是从下到上(顺着响应者链条向上传递:子控件到父控件. 引出 当我们手指触摸屏幕 ...
- dedecmsV5.7 arclist标签同时取出主表和附表里的数据
{dede:arclist}{/dede:arclist}标签默认取出来的是主表x_archives中的数据,如果要取出附表中的数据,需要满足两个条件: 指定channelid属性(注意:channe ...
- Hadoop、storm和Spark Streaming简单介绍(非原创)
文章大纲 一.Hadoop是什么二.storm是什么三.Spark Streaming是什么四.Spark与storm比较五.参考文章 一.Hadoop是什么 1. 简介 Hadoop是一个由Ap ...
- udp协议,进程(同步,异步)
udp协议与进程 一.udp协议 QQ聊天室 #- sever import socket #socket.SOCK_DGRAM--->UPD协议 sever = socket.socket(t ...
- [Go] Golang中的面向对象
struct interface 就可以实现面向对象中的继承,封装,多态 继承的演示:Tsh类型继承People类型,并且使用People类型的方法 多态的演示Tsh类型实现了接口Student,实现 ...
- 《Linux/UNIX系统编程手册》第56章 SOCKET:介绍
关键词: 1. socket基础 一个典型的客户端/服务器场景中,应用程序使用socket进行通信的方式如下: 各个应用程序创建一个socket.socket是一个允许通信的设备,两个应用程序都需要用 ...