Java容器学习:List、Set、Queue、Map

一、容器

很多时候,程序总是根据运行时才知道的某些条件去创建新对象,在此之前不知道所需对象的数量,甚至对象的类型,这时就需要容器来保存对象。Java容器类可以自动地调整自己的尺寸。容器类类库可以划分为两个不同的概念:

  1. Collection。一个独立元素的序列,如List(按照插入顺序保存元素),Set(不能有重复元素),Queue(按排队规则确定对象产生的顺序);
  2. Map。一组成对的“键值对”对象,允许用键来查找值。Map维护了一张映射表,也叫“关联数组”或“字典”。

有两种类型的List,都是按被插入的顺序保存元素:

  1. ArrayList,随机访问元素比较快,但是在List中间插入和移除元素比较慢;
  2. LinkedList,在随机访问元素比较慢,但是在List中间插入和移除元素比较快,提供了优化的顺序访问。

Stack,“栈”,是个“后进先出(LIFO)”的容器,最后一个压入栈的元素,第一个弹出栈。LinkedList具有能够直接实现栈的所有功能的方法,可以将LinkedList作为栈使用。

二、迭代器

迭代器是一个对象,工作是遍历并选择序列中的对象,而客户端程序员不必知道该序列底层的结构,即不管序列结构是ArrayList、LinkedList还是HashSet,都可以用迭代器来遍历序列。Iterable接口包含一个能产生Iterator的iterator()方法,并且Iterable接口被foreach用来在序列中移动,所以如果创建了任何Iterable的类,都可以用于foreach语句中,Collection类(但不包括Map)都是Iterable类型,Map得先用entrySet()方法产生一个由Map.Entry的元素构成的Set,由于Set是一个Iterable,所以可以用foreach循环。

最后看一下Java容器的简图,黑框的是常用的容器。

时间: 2024-10-31 21:51:47

Java容器学习:List、Set、Queue、Map的相关文章

java—容器学习笔记

一:迭代器 刚开始学容器,做了个简单的练习题.. 1 import java.util.ArrayList; 2 import java.util.Collection; 3 import java.util.Iterator; 4 5 public class CollectionTest { 6 public static void main(String[] args) { 7 8 Collection<String>collstr = new ArrayList<String&g

Java 容器源码分析之 Map

ava.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map.List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建.存储和操作任何类型对象元素列表.List 适用于按数值索引访问元素的情形. Map 提供了一个更通用的元素存储方法.Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值.从概念上而言,您可以将 List 看作是具有数值键的 Map.而实际上,除了

Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值

1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.Set; 6 7 /* 8 * Map集合的遍历. 9 * Map -- 夫妻对 10 * 11 * 思路: 12 * A:获取所有结婚证的集合 13 * B:遍历结婚证的集合,得到每一个结婚证 14 * C:根据结婚证获取丈夫和妻子 15 * 16 * 转换: 17 * A:获取所有键值对对象的集合 1

Android(java)学习笔记104:Map集合的遍历之键找值

1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.Set; 6 7 /* 8 * Map集合的遍历. 9 * Map -- 夫妻对 10 * 思路: 11 * A:把所有的丈夫给集中起来. 12 * B:遍历丈夫的集合,获取得到每一个丈夫. 13 * C:让丈夫去找自己的妻子. 14 * 15 * 转换: 16 * A:获取所有的键 17 * B:遍历键

JAVA基础学习day16--集合三-Map、HashMap,TreeMap与常用API

一.Map简述 1.1.简述 public interface Map<K,V> 类型参数: K - 此映射所维护的键的类型 key V - 映射值的类型 value 该集合提供键--值的映射.key不能重复,一对对的存储方式 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 1.2.方法 嵌套类摘要 static interface Map.Entry<K,V> 映射项(键-值对). 方法摘要 void clear() 从此映射中移除所有映射关系(可选操

java容器学习

容器是java中重要的一部分,其接口的结构如下 Collection | ------------------ Map | | | Set List HashMap | HashSet 顾名思义,容器是用来存储东西的,对于对象,容器中存储的实质上是对象的引用,即对象的地址. Collection接口有两个子接口Set和List,除了均是用来存储元素这个共性之外,分别具有不同的特点. List类别的容器一般具有有序的特点,当元素插入删除时,维护了元素的顺序,并且可以放置重复元素. Set类别的容器

黑马程序员--Java基础学习笔记【集合-Map】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Map 接口 Map 接口定义的集合,又称查找表 Map 接口和 Collection 接口没关系 Map 集合派系,存储映射键值对 不允许重复的键,每个键最多映射 1 个值 根据内部数据结构不同,Map 接口有多种实现类: 常用的有内部为 hash 表实现的 HashMap 和内部为排序二叉树实现的 TreeMap Map 接口和 Collection 接口的不同 Map 和 Collect

Java容器-引用分类与部分Map用法

一.目录 1.引用分类 2.了解WeakHashMap.IdentityHashMap.EnumMap 3.同步控制与只读设置 二.代码实现 1.引用分类(面试) 强引用(StrongReference):引用指向对象,gc运行时,不回收. 弱引用(SoftReference):gc运行时可能回收(当jvm内存不足时). 软引用(WeakReference):当gc运行时,对象回收. 虚引用(phantomReference):类似于无银用,主要跟踪对象被回收的对象,不能单独使用,要与Refer

Android(java)学习笔记102:Map集合功能概述

下面通过代码引入Map集合:如下 1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 /* 7 * 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名,请问怎么做呢? 8 * 如果采用前面讲解过的集合,我们只能把学号和学生姓名作为一个对象的成员,然后存储整个对象,将来遍历的时候,判断,获取对应的名称. 9 * 但是呢,如果我都能把