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的更多相关文章

  1. Java容器类接口:Iterator,Collection,Map

    Iterator Iterator被称为迭代器,是一个对象,它的工作是遍历并选择序列中的对象,可以实现以下一些操作: 使用方法iterator()要求容器返回一个Iterator,Iterator将返 ...

  2. Java集合排序及java集合类详解--(Collection, List, Set, Map)

    1         集合框架 1.1         集合框架概述 1.1.1         容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...

  3. 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 ...

  4. 【Java】集合概述Collection、Map

    Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...

  5. 理解java集合——集合框架 Collection、Map

    1.概述: @white Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中. 2.Java集合大致可以分4类: @white Set ...

  6. Java连载82-Set、Collection、List、Map的UML演示

    一.UML演示Collection集合的继承结构图 二.Set集合 1.List存储元素的特点:有序可重复.有序,存进去是什么顺序,拿出来还是什么顺序. 2.Set存储元素的特点:无序不可重复,存进去 ...

  7. java 深入技术二(Collection)

    1. java集合 存储和管理多个java对象 包括很多java类和接口 Collection List                              Set ArrayList  Lin ...

  8. Java中Map常用方法总结以及遍历方式的汇总

    一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...

  9. JAVA ,Map接口 ,迭代器Iterator

    1.    Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...

随机推荐

  1. MyBatis(九):MyBatis类型处理器(TypeHandler)详解

    TypeHandler简介 TypeHandler,顾名思义类型转换器,就是将数据库中的类型与Java中的类型进行相互转换的处理器. MyBatis 在设置预处理语句(PreparedStatemen ...

  2. Java并发编程之同步/并发集合

    同步集合 Java中同步集合如下: Vector:基于数组的线程安全集合,扩容默认增加1倍(ArrayList50%) Stack:继承于Vector,基于动态数组实现的一个线程安全的栈 Hashta ...

  3. Java中的集合List - 入门篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的集合List - 入门篇>,希望对大家有帮助,谢谢 简介 说实话,Java中的集合有很多种,但是这里作为入门级别,先简单介绍第一种 ...

  4. Android Studio 如何更新到新版本

    •How 打开 Android Studio 选择任务栏中的 File 点击 Setting: 来到如下界面: 依次点击  Appearance & Behavior -> System ...

  5. Tomcat详解系列(3) - 源码分析准备和分析入口

    Tomcat - 源码分析准备和分析入口 上文我们介绍了Tomcat的架构设计,接下来我们便可以下载源码以及寻找源码入口了.@pdai 源代码下载和编译 首先是去官网下载Tomcat的源代码和二进制安 ...

  6. PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) 凌宸1642 题目描述: A number that will ...

  7. .net 预处理指令符的使用

    目录 什么是预处理指令符? 预处理指令符的使用 自定义指令符 使用Visual Studio快速定义指令符 定义指令符区域 什么是预处理指令符? 当C#编译器找到一条预处理指令#if,最后找到一条指令 ...

  8. 消息中间件-RabbitMQ持久化机制、内存磁盘控制

    RabbitMQ持久化机制 RabbitMQ内存控制 RabbitMQ磁盘控制 RabbitMQ持久化机制 重启之后没有持久化的消息会丢失 package com.study.rabbitmq.a13 ...

  9. 全网最清楚的:MySQL的insert buffer和change buffer 串讲

    目录 一.前言 二.问题引入 2.1.聚簇索引 2.2.普通索引 三.change buffer存在的意义 四.再看change buffer 五.change buffer 的限制 六.change ...

  10. 我最近做了一个react的后台管理系统,用于快速创建后台项目模板

    react-ant-admin 此框架使用与二次开发,前端框架使用react,UI框架使用ant-design,全局数据状态管理使用redux,ajax使用库为axios.用于快速搭建中后台页面.欢迎 ...