Java中的容器类(List,Set,Map,Queue)

Java中的容器类(List,Set,Map,Queue)

一、基本概念

  Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:

  1)Collection。一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能有重复的元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。

  2)Map。一组成对的“键值对”对象,允许你使用键来查找值。ArrayList允许你使用数字来查找值,因此在某种意义上讲,它将数字与对象关联在了一起。映射表允许我们使用另一个对象来查找某个对象,它也被称为“关联数组”,因为它将某些对象与另外一些对象关联在了一起;或者被称为“字典”,因为你可以使用键对象来查找值对象,就像在字典中使用单词来定义一样。

  完整容器分类,包括抽象类和遗留构建(不包括Queue的实现):

注意:

  Collections是java.util下的类,包含各种有关集合操作的静态方法;而Collection是java.util下的接口,是各种集合结构的父接口。

二、容器类的相关描述

三、总结

1. 各种Collection和各种Map都可以在你向其中添加更多的元素时,自动调整其尺寸。容器不能持有基本类型,但是自动包装机制会仔细地执行基本类型到容器中的所持有的包装器类型之间的双向转换。

2. ArrayList:大量的随机访问;LinkedList:经常从表中间插入或删除元素;

3. 各种Queue以及栈的行为,有LinkedList提供支持;

4. Map是一种将对象(而非数字)与对象相关联的设计。

  HashMap:快速访问;TreeMap:保持“键”始终处于排序状态,没有HashMap快;LinkedHashMap:保持元素的插入顺序,但也通过散列提供了快速访问能力。

5. Set不接受重复元素。

  HashSet:提供最快的查询速度;TreeSet:保持元素处于排序状态;LinkedHashSet:以插入的顺序保存元素。

6. Map与Collection之间的唯一重叠就是Map可以使用entrySet()和values()方法来产生Collection。

时间: 2024-10-06 18:53:25

Java中的容器类(List,Set,Map,Queue)的相关文章

JAVA中写时复制(Copy-On-Write)Map实现

1,什么是写时复制(Copy-On-Write)容器? 写时复制是指:在并发访问的情景下,当需要修改JAVA中Containers的元素时,不直接修改该容器,而是先复制一份副本,在副本上进行修改.修改完成之后,将指向原来容器的引用指向新的容器(副本容器). 2,写时复制带来的影响 ①由于不会修改原始容器,只修改副本容器.因此,可以对原始容器进行并发地读.其次,实现了读操作与写操作的分离,读操作发生在原始容器上,写操作发生在副本容器上. ②数据一致性问题:读操作的线程可能不会立即读取到新修改的数据

java中List、Array、Map、Set等集合相互转换的最佳方法

在java中,我们经常需要对List.Array等做一些转换操作,当然转换方法有很多种,但哪种方法既方便又高效呢?在这里向大家介绍一下集合间的最佳转换方法. 1.List转换为Array List<String> list = new ArrayList<String>(); list.add("China"); list.add("Switzerland"); list.add("Italy"); list.add(&q

Java中List,Set和Map详解及其区别

Java中的集合包括三大类,它们是Set(集).List(列表)和Map(映射),它们都处于java.util包中,Set.List和Map都是接口,它们有各自的实现类.Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList,Map的实现类主要有HashMap和TreeMap. Collection是最基本的集合接口,声明了适用于JAVA集合的通用方法,list和set都继承自collection接口. Collection接口的方法 boolean add

java中list、set、map区别(转)

Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些 Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提

JAVA中list与set,map的区别

1.List,Set,map都是继承自Collection接口,-----java.util2.List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 3.List接口有三个实现类:LinkedList,ArrayList,Vector ,Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet  Collection  

java中list、set、map的遍历方法

import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.junit.Test; public class TestDemo1 {

Java 中的容器 Collection 和 Map

Set中不能有重复元素,通过equals方法判断 HashSet : 为快速查找而设计的Set,存入的元素必须定义hashCode()方法,可以有一个null值 TreeSet :底层为树结构(红黑二叉树),内部有序.存入的元素必须实现comparable接口,不能有null值 LinkedHashSet : 具有HashSet的查找速度,同时按照插入的顺序存储,可以有一个null值 要将自定义的类对象放入Set或者Map时应该考虑是否需要重写其equals()方法和hashCode方法,如还需

Java中的集合类(List,Set.Map)

1.List 1.1 Arraylist 与 LinkedList 区别 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全: 底层数据结构: Arraylist 底层使用的是 Object 数组:LinkedList 底层使用的是 双向链表 数据结构 插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素位置的影响. 比如:执行add(E e)方法的时候, ArrayList 会默认在将指定

java中List、Set和Map三个接口

三个接口都在java.util包下 List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个共同的父接口,叫Collection,Map没有继承Collection接口 1.List接口: List表示有先后顺序的集合,一个对象可以被反复存储进List中,每调用一次add方法,这个对象就被插入进集合中一次 其实,并不是把这个对象本身存储进了集合中,而是在集合中用一个索引变量指向这个对象,当这个对象被add多次时,即相当于集合中有多个索引指向了这个对象 List除了可以用Iterato