Collection


 

  java 程序中,除了常用的八种基本数据类型,String还有一个集合类。常用的有ArrayListHashMapHashSet等,也有不常用的StackQueue,有线程安全的VectorHashTable,也有线程不安全的LinkedListTreemap等等。

 

一、Collection接口

  1. 最基本的集合接口,Java SDK提供的类都是继承自Collection的字接口如:List,Set
  2. java中实现了Collection接口的类必须提供两套标准构造函数,一个无参,一个创建新的Collection

 

二、 List接口

  1. Collection的直接接口,代表有序的Collection,用特定的插入顺序维护元素顺序。用户可以对列表中的元素插入位置进行精确的控制,也可以根据元素的位置索引访问元素并搜索列表中的元素,实现List接口的主要集合类:ArrayListLinkedListVectorStack
  2. ArrayList
    1. 是一个动态数组,允许任何符合规则的元素插入甚至null;
    2. 每个ArrayList有一个初始容量10,代表数组的大小。随元素的增加,容器的大小也会增加,每次增加元素都会进行容量检查,如果要溢出,就会进行扩容。
    3. Size(),isEmpty,get,set,iterator,listIterator都以固定时间云寻,
    4. ArrayList擅长随机访问,同时ArrayList是非同步的。?
  1. LinkedList
    1. LinkedList:是一个双向链表,除了ArrayList的基本操作方法外,还提供其首部和尾部的get,Remove,insert,操作;
    2. 不支持随机访问,在列表中索引的操作将从头或尾遍历列表;
    3. 非同步,多个线程同时访问List,必须自己实现访问同步,一种解决方法是在List构造时构造一个同步的listList list = Collections.synchronizedList(new LinkedList())

 

  1. Vector

ArrayList相似,但是Vector是同步的,所以Vector是线程安全的动在数组;

  1. Stack:

继承自Vector,提供5个额外的方法作为堆栈使用,基本的pushpop方法,还有peek方法得到栈顶元素,empty测试是否为空,search检索元素位置,

三、 Set接口

不包含重复元素的Collection,维持自己的内部排序,随机访问对其没有任何意义。实现的集合有:EnumSetHashSetTreeSet

  1. EnumSet:枚举专用
  2. HashSet:查询速度最快的集合,其内部采用HashCode实现,元素的顺序由哈希码决定,
  3. TreeSet:生成一个总在排序状态的set,内部以Treemap实现,使用元素的自然顺序来进行排序,或者根据创建Set时提供的Comparator进行排序,取决于具体的构造方法;

 

四、Map接口

由一系列的键值组成的集合,提供key->value映射,不能存在相同的key值,实现Map的有HashMapTreeMapHashTableProperties,EmumMap

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值