Java中ListSet和Map之间的区别_动力节点Java学院整理-创新互联

Java集合的主要分为三种类型:

创新互联主营磐安网站建设的网络公司,主营网站建设方案,重庆APP开发公司,磐安h5成都小程序开发搭建,磐安网站营销推广欢迎磐安等地区企业咨询

• Set(集)

• List(列表)

• Map(映射)

要深入理解集合首先要了解下我们熟悉的数组:

数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。

世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合

有人想有可以自动扩展的数组,所以有了List

有的人想有没有重复的数组,所以有了set

有人想有自动排序的组数,所以有了TreeSet,TreeList,Tree**

而几乎有有的集合都是基于数组来实现的.

因为集合是对数组做的封装,所以,数组永远比任何一个集合要快

但任何一个集合,比数组提供的功能要多

 数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。

 一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。

 数组是一种可读/可写数据结构---没有办法创建一个只读数组。然而可以使用集合提供的ReadOnly方法,以只读方式来使用集合。该方法将返回一个集合的只读版本。

Java所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。

1、效率高,但容量固定且无法动态改变。

array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量。

2、Java中有一个Arrays类,专门用来操作array。

     arrays中拥有一组static函数,

   equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。

   fill():将值填入array中。

   sort():用来对array进行排序。

   binarySearch():在排好序的array中寻找元素。

   System.arraycopy():array的复制。

若撰写程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。所以就要用到集合。
那我们开始讨论java中的集合。

集合分类:

Collection:List、Set

Map:HashMap、HashTable

Collection接口

Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。 Set 和List 都继承了Conllection,Map。

Collection接口的方法:

 boolean add(Object o)      :向集合中加入一个对象的引用
 void clear():删除集合中所有的对象,即不再持有这些对象的引用
 boolean isEmpty()    :判断集合是否为空
 boolean contains(Object o) : 判断集合中是否持有特定对象的引用
 Iterartor iterator()  :返回一个Iterator对象,可以用来遍历集合中的元素
 boolean remove(Object o) :从集合中删除一个对象的引用
 int size()       :返回集合中元素的数目
 Object[] toArray()    : 返回一个数组,该数组中包括集合中的所有元素

关于:Iterator() 和toArray() 方法都用于集合的所有的元素,前者返回一个Iterator对象,后者返回一个包含集合中所有元素的数组。

Iterator接口声明了如下方法:

 hasNext():判断集合中元素是否遍历完毕,如果没有,就返回true
 next() :返回下一个元素
 remove():从集合中删除上一个有next()方法返回的元素。

Set(集合)

Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:

• HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
• TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

Set 的用法:存放的是对象的引用,没有重复对象

Set set=new HashSet();  
 String s1=new String("hello");  
 String s2=s1;  
 String s3=new String("world");  
 set.add(s1);  
 set.add(s2);  
 set.add(s3);  
 System.out.println(set.size());//打印集合中对象的数目 为 2。 

文章名称:Java中ListSet和Map之间的区别_动力节点Java学院整理-创新互联
路径分享:http://myzitong.com/article/hodgg.html