Colletion

Collection接口是劫和层次结构中的根接口。一个Collection表示了一组对象,也称其为元素(elements)。JDK不提供该接口的任何直接实现,但是提供了具有更特定的子接口(例如:Set和List)Set:不包含重复元素的集合。集合中不能存在两个元素e1和e2,使得

e1.equals(e2);

因此,集合中只能存在一个空元素。顾名思义,此接口是对应数学中集合的抽象概念。List:可以包含重复元素的集合。并且该集合存在有序性(也称为序列)。用户可以精确控制列表中每个元素的插入位置,也可以通过其索引访问元素。Java集合结构。

MAP

Map是一个将键(Key)映射到值(Value)的对象。Map中不能包含重复的键,并且每个键最多可以映射一个值。Map代替了Dictionary类,不再作为一个纯抽象类而是一个接口提供使用。

Map集合提供了三种集合视图,其中有一组键(keySet)、一组值(values)和一组键值(entrySet)对。TreeMap:可以通过Map中的键来自然排序或在Map创建时通过提供的Comparator对Map进行排序。

HashMap:此Map允许存在空值和空键存在,但不保证映射的顺序。特别是,它不能保证顺序会随着时间的推移保持恒定。

在Java中,Map与Collection同级,而并非与List和Set同级。Collection储存单值而Map储存键值对。

MAP常用方法

boolean isEmpty()

如果map中没有任何键值对映射,则返回true。

boolean containsKey(Object key)

如果map中包含一个(最多只有一个)特定键的映射,则返回true。

参数为:key - 要在map中测试的键。

boolean containsValue(Object value)

如果map中包含了一个或多个映射到键的值,则返回true。对于Map接口的大多数实现,此方法需要消耗的时间与map的大小成线性增长。

参数为:value - 要在map中测试的值。

V get(Object key)

返回特定键映射的值,如果该键在map中没有对应的映射,则返回null。

如果此map允许存放null值,则返回的null不一定表示该map不包含键的映射,也可能明确的指明该键的映射值为null。containsKey操作可以用来区分这两种情况。

参数为:key - 一个键,该键所关联的值会被返回。

V put(K key, V value)

将指定值与此映射中的指定键做关联。如果map中的键已经有对应的映射值,则会将旧值替换为指定的值。(仅当

m.containsKey(k);

返回true时,才认为map m包含键k的映射值)。该方法会返回键之前关联的值,如果为null则该键没有对应的值。

参数为:key - 一个键,该键要与特定的值相关联。

value - 一个值,该值要与特定的键相关联。

V remove(Object key)

将指定键与其相关联的一组键值对映射从map中移除。该方法会返回指定键所映射的值,如果该键没有对应的映射,则返回null。

与get方法相同,如果此map允许存在null值,则返回的null也可能明确的指明该键的映射值为null。

一旦调用此方法,则map中不再包含指定键与其映射值。

参数为:

key - 一个键,该键的一组键值对映射会被移出map。

void putAll(Map extends K, ? extends V> m)

将特定的map中的所有键值对复制到参数中给出的map中。对于从特定map中将键值对复制到给出的map中的操作等同于在给出的map中调用一次put(k, v)方法。如果在操作进行过程中对特定的map进行了修改,则不能保证此操作的正确性。

参数为:

m - 要存入map中的一组键值对映射组。

void clear()

移除map中的所有键值对。在执行该方法后,该map会变成空。

Set> entrySet()

该方法返回此map中包含的映射的Set视图。该set是基于原map的,所以map的数据改变会反映到set中,反之亦然。

如果在对set进行迭代的时候修改了map(除非通过迭代器自身的remove操作或通过迭代器的setValue方法),则迭代的结果是不确定的。该set支持元素的删除,删除map中对应的映射组。但不支持add或addAll操作。

Set keySet()

该方法返回此map中包含的key的Set视图。该set是基于原map的,所以map的数据改变会反映到set中,反之亦然。

Collection values()

该方法返回此map中包含的values的collection视图。该collection是基于原map的,所以map的数据改变会反映到collection中,反之亦然。

java怎么构造map_Java中Map结构相关推荐

  1. java 循环读取map_java中map的循环遍历和map的获取值的办法

    Java中Map的遍历方式了,这个其实有点像php中数组了,下文整理了一些map的循环遍历和map的获取值的办法,希望能帮助到各位. map的循环遍历方式  代码如下 复制代码 package com ...

  2. Java基础之Java8中Map的compute的使用

    Java基础之Java8中Map的compute的使用 一.介绍 Java8更新后,Map接口中提供了compute方法.下面我们先看看官方文档的对它的使用说明. 如果看完上面的还是不太明白的话,看下 ...

  3. Java基础之Java8中map和flatMap的使用

    Java基础之Java8中map和flatMap的使用 一.介绍 首先,看下map和flatMap的官方文档说明 map flatMap 其实单纯的看api说明还是比较抽象,下面我将以几个实战例子来帮 ...

  4. java 全局 map_java中map 9种常规用法

    通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下Java中关于Map的九大问题. 0.将Map转换为List类型 在java中Map接口提 ...

  5. java 中map_Java中Map集合

    1. Java中Map集合 1. Map中value可以重复,key不能重复.对于重复的key值来说,后放置的值对覆盖前放置的值. import java.util.HashMap; public c ...

  6. [转载] java对象在内存中的结构

    参考链接: 了解Java中的类和对象 今天看到一个不错的PPT:Build Memory-efficient Java Applications,开篇便提出了一个问题,在Hotspot JVM中,32 ...

  7. java禁止修改map_Java中实现不可变Map

    有时最好不允许修改  java.util.Map, 例如跨线程共享只读数据.为此,我们可以使用Unmodifiable Map或Immutable Map. 在这个快速教程中,我们将看到它们之间的区别 ...

  8. java set list map_Java中的Set,List,Map

    众所周知,Collection是所有层次结构中的根接口,而Set和List均继承了这个根接口.List接口对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList和Linked ...

  9. java foreach 遍历map_Java中遍历Map

    Java中的map遍历有多种方法,如最早的Iterator,Java5支持的foreach,Java8 Lambda. 先初始化一个map public class TestMap { public ...

最新文章

  1. 中国科学院院士褚君浩:第四次工业革命和智能时代
  2. Python 编写一个有道翻译的 workflow 教程
  3. odoo tree视图过滤数据_在EA中建立优雅的仪表板视图
  4. itoa函数的递归实现(二级指针实现)
  5. php 剩余空间,PHP内核探索:内存的申请与销毁
  6. [数据结构]数据结构中各种树
  7. 2 TileMapObject的使用
  8. ubuntu中安装wmware-tools
  9. [zz]GMM-HMM语音识别模型 原理篇
  10. EF安装和更新数据库
  11. WinForm PictureBox删除图片重新加载,显示System.IO.IOException:文件“**.png”正由另一进程使用,因此该进程无法访问此文件
  12. kubernetes视频教程笔记 (23)-存储-Volume
  13. 英文文本处理 c github_真香警告!有了这个搜索大法,GitHub可以玩到飞起来!
  14. python分解GIF图
  15. 学习linux方向,学习linux方向
  16. Hexo+Github免费搭建个人博客+美化详细教程
  17. PySide6官方教程 循序渐进学好Qt for Python
  18. vue+element 获取中文首字母,转换成大写
  19. 2021-2027全球与中国空气监测设备市场现状及未来发展趋势
  20. [新人向]MySQL和Navicat下载、安装及使用详细教程

热门文章

  1. php 检测密码,php检测密码强度
  2. android封装多肽,深度探索C++对象模型之(四)...-Android.animation cts fail-Rails helper_169IT.COM...
  3. mysql groupby 日期_sql 语言 groupBy 分组统计时间段解决方案
  4. 2018-2019-1 20189221 《深入理解计算机系统》第 1 周学习总结
  5. Zabbix监控Nginx性能状态
  6. Python date,datetime,time等相关操作总结
  7. linux虚拟机安装oracle全过程(一)
  8. 【阿里云API】 阿里云API调用的若干说明
  9. codeforces round 422 div2 补题 CF 822 A-F
  10. git学习小结(未完待续)