浅谈Java中的Set,List,Map的区别

来源:互联网 发布:如何解决网络威胁 编辑:程序博客网 时间:2024/04/29 06:25

就学习经验,浅谈Java中的Set,List, Map的区别,对java中的人集合的理解是想对于数组。

数组是大小固定的,并且同一个数组只能存放类型(基本类型和引用类型)一样的数据,Java集合可以存储和操作数数目并不固定的一组数据。

所有的java结集合都位于java.util 包中,Java中集合只能存放引用类型的数据,不能存放基本数据类型。



java集合主要分为三种了类型:


:Set(集)

:List (列表)

:Map (映射)

Collection接口:Collection是最基本的集合接口,声明了适用于Java集合(只包括Set和list)的通用方法。

Set和 lIst 都继承了Collection,Map

Collection接口的方法:

boolean add(Objection o )

void clear();

boolean isEmpty();

boolean contains(Objection o)

Iterartor iterator()

is Size();


他们之间的区别:


LIst(列表):  LIst 的特征是其元素以线性方式存储,集合中可以存储重复对象。

ArrayList():  代表长度可以改变的数组,可以对元素进行随机的访问。向Arraylist()中插入和删除元素的速度慢

LinkedList() : 在实现中采用链表数据结构,插入和删除速度快,访问速度慢


对于LIst的随机访问来说,就是只随机来检索位于特定位置的元素。

LIst的get(int index)方法放回集合中有参数index指定的索引位置的对象。

下表从0开始,最基本的两种检索集合中的所有对象的方法。



Map是一种把健和值对象映射的集合,它的每一个元素都包含一对建对象和值对象。

Map中没有继承于Collection接口,从Map集合中检索元素时,只要给出对象,就会返回对应的值对象。

Map中的健对象不能吃重复,也就是说任意两个键对象通过equals()方法比较的结果都是false,但是可以将任意多个键独享映射到同一个值上面。




ArrayList:由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历 ArrayList,而不是用来插入和移除元素。因为那比LinkedList开销要大很多。 

LinkedList :对顺序访问进行了优化,向List中间插入与删除的开销并不大。随机访问则相对较慢。(使用ArrayList代替。)还具有下列方 法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(), 这些方法 (没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。 



0 0
原创粉丝点击