JAVA中常用的集合类型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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(E o) 向列表的尾部追加指定的元素
6)boolean contains(Object o) 如果列表包含指定的元素,则返回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 UserInfo{
List oneVector=new Vector();
public void execute(){
List oneArraylist=new ArrayList();
}
}
4.example
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
List 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(E o) 如果 set 中尚未存在指定的元素,则添加此元素2)boolean remove(Object o) 如果 set 中存在指定的元素,则将其移除
3)int size() 返回 set 中的元素数(其容量)。
4)boolean isEmpty() 如果 set 不包含元素,则返回 true。
6)boolean contains(Object o) 如果 set 包含指定的元素,则返回 true。
7)Iterator iterator() 返回在此 set 中的元素上进行迭代的迭代器。
3. Set接口的实现类
Set接口的实现类有HashSet、LinkedHashSet和TressSet等集合类
HashSet集合中元素对象是以hashcode码作为标识,所以放入的成员元素对象的内容是不能重复的;HashSet集合中元素对象是无序的——成员元素的存储和添加时的顺序并不完全一致。对于自定义的类型需要重写hashcode()方法和equals()方法。
TreeSet集合:如果想对输入的数据进行有序排列,则要使用TreeSet 子类。这里的有序是对象的大小顺序,而不是对象插入到集合当中的顺序。
LinkedHashSet是在HashSet的集合的基础上添加了双向链的支持。
4. example
import java.util.HashSet;
import java.util.Set;
public class HashSetDemo01 {