黑马程序员技术交流社区

标题: Java集合框架 List [打印本页]

作者: javaeea    时间: 2015-9-25 10:43
标题: Java集合框架 List
List接口:列表   可以包含重复元素

List接口代表一种有序的集合,也是Collection的子接口,它关心的是索引,List对象可以包含重复元素,List可以从列表的头部或尾部开始搜索元素,

如果找到所搜索元素,还将报告元素所在的位置,其具体的实现类有ArrayList,Vector,LinkedList,附带有一个重要的集合框架中的实用类Arrays

List中新增的方法

•boolean addAll(int index ,Collection c)  将集合c的所有元素添加的集合index位置,原先位置及其后面的元素按次后移
•Object get(int index)   返回index位置的元素
•Object set(int index ,Object element)  用所给的对象element替换指定位置的元素,返回被替换的元素
•void add(int index,Object element) 在指定位置插入对象element,而原先位置及其后面的元素依次后移
•Object remove(int index)从List中删除指定位置的元素,原先位置及其后面的元素依次左移,返回被删除的元素
•int indexOf(Object o)  返回对象o在List中第一次出现的索引值,如果o 不是List的元素,返回-1
•int lastIndexOf(Object o)返回对象o在List中最后出现的索引值,如果o 不是List的元素,返回-1
•ListIterator listIterator()  按顺序返回List 中元素的一个列表迭代器
•ListIterator listIterator(int index)  按顺序返回List 中从index位置开始的元素的一个列表迭代器
•List subList(int formindex  ,int  toindex)  返回从formindex到toindex的元素组成的一个List


ArrayList:是一个可变长度的数组,实现了LIst接口,因此他可以包含重复元素和Null元素,也可以任意的访问和修改元素,由ArrayList类实现的List集合采用数组结构

保存对象,ArrayList类封装了一个动态再分配的Object [ ]数组,每一个ArrayList对象都有一个capacity,表示存储列表所有元素的数组的容量,当元素添加的ArrayList时他的

capacity在常量时间内自动增加

它有以下常用的方法:

•add()
•remove()
•Contains()
•ToArray()   这个方法把ArrayList的元素Copy到一个新的数组中
•ensureCapacity(int  minCapacity) 将ArrayList对象容量增加minCapacity
•trimToSize() 整理ArrayList对象容量调整为列表当前大小


具体的方法可以参考Api文档,这里有个例子程序



[html] view plaincopy在CODE上查看代码片派生到我的代码片

01.import java.util.ArrayList;  
02.import java.util.HashSet;  
03.import java.util.Iterator;  
04.import java.util.List;  
05.import java.util.Set;  
06.  
07.  
08.public class ListDemo {  
09.  
10.    /**  
11.     * @param args  
12.     */  
13.    public static void main(String[] args) {  
14.        // TODO Auto-generated method stub  
15.        Set set=new HashSet();  
16.        set.add("a");  
17.        set.add("b");  
18.        set.add("c");  
19.        List list=new ArrayList();  
20.        //list.addAll(set);  
21.        list.add("d");  
22.        list.add("e");  
23.        list.add("f");  
24.//      System.out.println(list);  
25.//      System.out.println(list.contains("a"));  
26.//      System.out.println(list.get(1));  
27.//      System.out.println(list.indexOf("f"));  
28.//      Iterator iter=list.iterator();  
29.//      System.out.println(iter.next());  
30.//      Object [] rt=list.toArray();  
31.//      for(int i=0;i<rt.length;i++)  
32.//          System.out.println(rt[i]);  
33.//      System.out.println(list.size());  
34.//      for(int i=0;i<list.size();i++)  
35.//          System.out.println(list.get(i));  
36.    }  
37.  
38.}  

作者: ln0491    时间: 2015-9-25 10:59
学习了。。。。。。。。。。。。。
作者: heshiwei    时间: 2015-9-25 11:12
学习了,总结的很详细。
作者: zzy张    时间: 2015-9-25 12:53
学习了~~~~
作者: 李玉    时间: 2015-9-25 13:15
又复习了一边。
作者: zzy张    时间: 2015-9-25 13:41
学习了~~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2