码迷,mamicode.com
首页 > 编程语言 > 详细

Java集合---List集合

时间:2017-10-09 11:01:21      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:ext   insert   tab   双向   接口   客户化   注意   遍历   调用   

概念

List继承自Collection接口。List是一种有序集合,List中的元素可以根据索引(顺序号:元素在集合中处于的位置信息)进行取得/删除/插入操作。

跟Set集合不同的是,List允许有重复元素。对于满足e1.equals(e2)条件的e1与e2对象元素,可以同时存在于List集合中。当然,也有List的实现类不允许重复元素的存在。同时,List还提供一个listIterator()方法,返回一个ListIterator接口对象,和Iterator接口相比,ListIterator添加元素的添加,删除,和设定等方法,还能向前或向后遍历,具体的方法往下看。List接口的实现类主要有ArrayList,LinkedList,Vector,Stack等。

ArrayList类

ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。

ArrayList与Vector的区别

  ArrayList Vector
性能   采用异步处理方式,性能高   采用同步处理方式,性能低
线程安全   非线程安全   线程安全,需要线程安全时使用

 

 

 

主要方法

  • public boolean add(Object?o):添加元素
  • public void add(int index, Object element):在指定位置添加元素
  • public Iterator iterator():取得Iterator对象便于遍历所有元素
  • public Object get(int?index):根据索引获取指定位置的元素
  • public Object set(int index,Object element):替换掉指定位置的元素

排序方法

  • Collections.sort(List list):对List的元素进行自然排序
  • Collections.sort(List list, Comparator comparator):对List中的元素进行客户化排序 

LinkedList类

     LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
    注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(...));

Java集合---List集合

标签:ext   insert   tab   双向   接口   客户化   注意   遍历   调用   

原文地址:http://www.cnblogs.com/xiaobaizhiqian/p/7639906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!