JAVA中常用的集合类型.doc_第1页
JAVA中常用的集合类型.doc_第2页
JAVA中常用的集合类型.doc_第3页
JAVA中常用的集合类型.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA常用的高级数据类型集合类型一、JAVA语言中的集合类型主要有三种形式:Set(集)、List(列表)、Map(映射),每种类型的集合都包括三部分:接口、实现和算法。a) 集合接口实现集合的操作和集合的具体功能实现细节的相互分离Set接口、List接口、Map接口b) 集合的具体功能实现类实质上是各种可重用的数据结构的具体表示List接口的实现类有ArrayList、LinkedList、Stack和Vector等集合类,Vector 类提供了实现可增长数组的功能,随着更多元素加入其中,数组变的更大。在删除一些元素之后,数组变小。Set接口的实现类有HashSet、LinkedHashSet和TreeSet等集合类Map接口的实现类有HashMap、Hashtable、LinkedHashMap、Properties和TreeMap等集合类。c) 集合的算法指可以对实现集合接口的各个集合的功能实现类提供如排序、查找、交换和置换等方面的功能实现。二、List接口1.List接口代表有序的集合,可以对List接口代表的有序集合中每个元素的插入位置进行精确地控制,并利用元素的整数索引(代表元素在集合中的位置)访问元素中的各个成员,List接口代表的集合是允许出现重复元素的。2.List接口主要成员方法:1)void add(int index,E element)在列表指定位置插入指定元素2)E get(int index) 返回结合中指定位置的元素3)E remove(int index) 移除集合中指定位置的元素4)E set(int index,E elment) 用指定元素替换集合中指定位置的元素5)boolean add(Eo) 向列表的尾部追加指定的元素6)boolean contains(Objecto) 如果列表包含指定的元素,则返回 true。7)boolean isEmpty() 如果列表不包含元素,则返回 true。8)int size() 返回列表中的元素数9)Iterator iterator()返回以正确顺序在列表的元素上进行迭代的迭代器。 3.List的实现类List在数据结构中分别表现为数组(ArrayList)、向量(Vector)、链表(LinkedList)、堆栈(Stack)和队列等形式。Vector集合和ArrayList集合都是采用数组形式来保存对象,区别在于ArrayList集合本身不具有线程同步的特性,不能用在多线程的环境下,可以使用ArrayList集合能够节省由于同步而产生的系统性能的开销。而Vector集合实现了对线程同步的支持,因此在多线程并发访问的应用环境下,该集合本身能够保证自身具有线程安全性。在多线程的并发访问中,可以将Vector集合的对象实例设计为类中的成员属性,而应该将ArrayList集合的对象实例设计为局部对象。public class UserInfoList oneVector=new Vector();public void execute()List oneArraylist=new ArrayList();4.exampleimport java.util.ArrayList;import java.util.List;public class ListExample public static void main(String args) / TODO Auto-generated method stubList oneList=new ArrayList();oneList.add(zhangsan);oneList.add(lisi);oneList.add(new Integer(1234);/允许集合包含不同类型元素oneList.add(lisi);/允许集合包含相同元素System.out.print(oneList);三、Set接口1.Set接口代表一个无序并且不允许元素重复存在的集合2.Set接口主要成员方法1)boolean add(Eo) 如果 set 中尚未存在指定的元素,则添加此元素2)boolean remove(Objecto) 如果 set 中存在指定的元素,则将其移除3)int size() 返回 set 中的元素数(其容量)。4)boolean isEmpty() 如果 set 不包含元素,则返回 true。6)boolean contains(Objecto) 如果 set 包含指定的元素,则返回 true。7)Iterator iterator() 返回在此 set 中的元素上进行迭代的迭代器。3.Set接口的实现类Set接口的实现类有HashSet、LinkedHashSet和TressSet等集合类HashSet集合中元素对象是以hashcode码作为标识,所以放入的成员元素对象的内容是不能重复的;HashSet集合中元素对象是无序的成员元素的存储和添加时的顺序并不完全一致。对于自定义的类型需要重写hashcode()方法和equals()方法。TreeSet集合:如果想对输入的数据进行有序排列,则要使用TreeSet子类。这里的有序是对象的大小顺序,而不是对象插入到集合当中的顺序。LinkedHashSet是在HashSet的集合的基础上添加了双向链的支持。4. exampleimportjava.util.HashSet; importjava.util.Set; publicclassHashSetDemo01 publicstaticvoidmain(Stringargs) SetallSet=newHashSet(); allSet.add(A);/增加元素 allSet.add(B);/增加元素 allSet.add(C);/增加元素 allSet.add(C);/重复元素,不能加入 allSet.add(C);/重复元素,不能加入 allSet.add(D);/增加元素 allSet.add(E);/增加元素 System.out.println(allSet);/输出集合对象,调用toString() 程序运行结果:D,A,C,B,E三、Map接口1.Map中的每个成员元素是由一个关键字(Key)和一个值(value)构成的。该集合中成员元素的关键字不能重复,并且每个键只能与一个值相对应。2.Map接口主要成员方法1)V put(Kkey, Vvalue) 将指定的值与此映射中的指定键关联2)V remove(Objectkey) 如果存在一个键的映射关系,则将其从此映射中移除3)V get(Objectkey) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。4)Boolean isEmpty() 如果此映射未包含键-值映射关系,则返回 true。5)int size()返回此映射中的键-值映射关系数。6)boolean containsKey(Objectkey)如果此映射包含指定键的映射关系,则返回 true。7)boolean containsValue(Objectvalue) 如果此映射将一个或多个键映射到指定值,则返回 true。3.Map接口的实现类Map接口的实现类有HashMap、Hashtable、LinkedHashMap、Properties和TreeMap等集合类。HashMap和HashTable区别于ArrayList和Vector类似,HashMap是采用非线程安全的方式设计的,效率上高于Hashtable集合。在多线程并发访问的环境下应用Hashtable集合对象时不需要开发人员单独为它的方法实现同步锁定因为Hashtable集合中的所有方法都是同步定义的方法。在多线程的并发访问的应用环境中,开发人员可以将Hashtable集合的对象实例设计为类的成员属性对象,应该将HashMap集合的对象实例设计为方法的局部对象。public class UserInfo Map oneHashtable=new Hashtable();public void execute()Map oneHashMap=new HashMap();4.exampleimport java.util.HashMap;import java.util.Map;public class MapExample public static void main(String args) / TODO Auto-generated method stubMap cityHashMap=new HashMap();cityHashMap.put(beijing, 北京);cityHashMap.put(2, 3); /允许集合中包括不同类型的关键字和值cityHashMap.put(nanchang, 南昌); cityHashMap.put(nanchang, 江西);/后面元素覆盖前面相同键名的元素System.out.print(cityHashMap);四、迭代器Iterator1Iterator对集合进行迭代(遍历)。2.Iterator常用的方法1)boole

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论