java之Map和Collection
java中保存对象的容器可分为两类:
1、Map。Map是以键值对的形式来保存一组对象,可以通过键来查找值。
2、Collection。用来保存独立对象的序列。Collection又可分为三种类型:
(1)List。按照插入的顺序保存对象。
(2)Set。无序,不能有重复元素。
(3)Queue。按照特定规则确定对象顺序,通常就是它们被插入时的顺序,也可根据具体需求设置优先级。
Map:
Map的常用方法
| boolean containsKey(Object key) | 是否包含键key,是则返回 true。 |
| boolean containsValue(Object value) | 是否包含值value,是则返回 true。 |
| boolean isEmpty() | 如果此映射未包含键-值映射关系,则返回 true。 |
| V put(K key, V value) | 插入键值对。若key已存在,返回value;否则,返回null。 |
| void putAll(Map<? extends K,? extends V> m) | 将另一个Map对象复制到到此对象中。 |
| V remove(Object key) | 根据key移除键值对,返回被删的值,若不存怎返回null。 |
| void clear() | 清空所有key-value对。 |
| V get(Object key) | 通过key查找value并返回,若无,则返回null。 |
| int size() | 返回key-value对数量。 |
| Set<Map.Entry<K,V>> entrySet() | 返回键值对的Set集。 |
| Set<K> keySet() | 返回的key的Set集。 |
| Collection<V> values() | 返回value的Collection集。 |
map是一种把key和value进行关联的容器,把key的哈希码作为索引,可以根据这个索引获取保存的值。但是,不同的key可以对应相同的value。
在这里,hash码决定了储存位置。关于java中是如何设置一个对象的哈希值的,可以参考我的另一篇随笔java中的hashCode()方法。
Map有两个常用的实现类HashMap和LinkedHashMap,这两个类的使用在我的另一篇随笔java之Map的使用中有较为详细的讲解。
Collection:
Collection的常用方法
| int size() | 返回元素个数 |
| boolean add(E e) | 添加元素,添加成功返回true |
| boolean addAll(Collection<? extends E> c) | 将c中的所有元素添加到此对象中 |
| void clear() | 移除此 collection 中的所有元素 |
| boolean contains(Object o) | 若包含元素o,则返回 true |
| boolean containsAll(Collection<?> c) | 若包含c 中的所有元素,则返回 true |
| boolean isEmpty() | 若不包含元素,则返回 true |
| Iterator<E> iterator() | 返回迭代器 |
| boolean remove(Object o) | 移除元素o。若有元素被移除,返回true |
| boolean removeAll(Collection<?> c) | 移除c中包含的所有元素,有改变即返回true |
| boolean retainAll(Collection<?> c) | 仅保留c中包含的元素,有改即返回true |
java之Map和Collection的更多相关文章
- Java容器类接口:Iterator,Collection,Map
Iterator Iterator被称为迭代器,是一个对象,它的工作是遍历并选择序列中的对象,可以实现以下一些操作: 使用方法iterator()要求容器返回一个Iterator,Iterator将返 ...
- Java集合排序及java集合类详解--(Collection, List, Set, Map)
1 集合框架 1.1 集合框架概述 1.1.1 容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...
- spark提示Caused by: java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to [Lscala.collection.immutable.Map;
spark提示Caused by: java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot b ...
- 【Java】集合概述Collection、Map
Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...
- 理解java集合——集合框架 Collection、Map
1.概述: @white Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中. 2.Java集合大致可以分4类: @white Set ...
- Java连载82-Set、Collection、List、Map的UML演示
一.UML演示Collection集合的继承结构图 二.Set集合 1.List存储元素的特点:有序可重复.有序,存进去是什么顺序,拿出来还是什么顺序. 2.Set存储元素的特点:无序不可重复,存进去 ...
- java 深入技术二(Collection)
1. java集合 存储和管理多个java对象 包括很多java类和接口 Collection List Set ArrayList Lin ...
- Java中Map常用方法总结以及遍历方式的汇总
一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...
- JAVA ,Map接口 ,迭代器Iterator
1. Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...
随机推荐
- 去哪找Java练手项目?
经常有读者在微信上问我: 在学编程的过程中,看了不少书.视频课程,但是看完.听完之后感觉还是不会编程,想找一些项目来练手,但是不知道去哪儿找? 类似的问题,有不少读者问,估计是大部分人的困惑. 练手项 ...
- 小技巧!CSS 整块文本溢出省略特性探究
今天的文章很有意思,讲一讲整块文本溢出省略打点的一些有意思的细节. 文本超长打点 我们都知道,到今天(2020/03/06),CSS 提供了两种方式便于我们进行文本超长的打点省略. 对于单行文本,使用 ...
- centos安装rar
wget https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz tar -xzvf rarlinux-x64-5.5.0.tar.gz cd rar ...
- HDU_3949 XOR 【线性基】
一.题目 XOR 二.分析 给定$N$个数,问它的任意子集异或产生的数进行排列,求第K小的数. 构造出线性基$B$后,如果$|B| < N$,那么代表N个数中有一个数是可以由线性基中的其他数异或 ...
- 浅析MyBatis(二):手写一个自己的MyBatis简单框架
在上一篇文章中,我们由一个快速案例剖析了 MyBatis 的整体架构与整体运行流程,在本篇文章中笔者会根据 MyBatis 的运行流程手写一个自定义 MyBatis 简单框架,在实践中加深对 MyBa ...
- ASP.NET Core分布式日志系统ELK实战演练
一.ELK简介 ELK是Elasticsearch.Logstash和Kibana首字母的缩写.这三者均是开源软件,这三套开源工具组合起来形成了一套强大的集中式日志管理平台. • Elastics ...
- 手机浏览器通过Scheme跳转APP,兼容各种手机浏览器
一个比较完整的产品线,必定有APP和网站,另外还有微信公众号网页和小程序.那么有一个比较常见的需求就是在手机浏览器内打开APP,实现起来也比较简单,只要APP配置的有URLScheme即可. 但是因为 ...
- PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...
- 第24 章 : Kubernetes API 编程利器:Operator 和 Operator Framework
Kubernetes API 编程利器:Operator 和 Operator Framework 本节课程主要分享以下三方面的内容: operator 概述 operator framework 实 ...
- 第22 章 : 有状态应用编排 StatefulSet
有状态应用编排 StatefulSet 本文将主要分享以下四方面的内容: "有状态"需求 用例解读 操作演示 架构设计 "有状态"需求 课程回顾 我们之前讲到过 ...