王吉元-NWPU

导航

 

先看List的继承关系图:

Collection

  ├List

  │├LinkedList

  │├ArrayList

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java JDK不能提供直接继承自Collection的类,Java JDK提供的类都是继承自Collection的"子接口",如:List和Set。

List特点:元素有放入顺序,元素可重复

List<E>([]内的内容可省略),与数组类似:

实例化:List[<数据类型>] list = new ArrayList[<数据类型>]();
获得集合内元素个数:list.size();

添加元素:
默认添加:list.add(e);
指定下标添加(添加后下标后的元素向后挪一位):list.add(index,e);

删除元素:
返回是否删除:list.remove(e);
直接删除指定下标的元素(只删除找到的第一个相符合的元素):list.remove(index);

替换元素(替换掉指定下标的元素):list.set(index,e);

取出元素:list.get(index);

清空集合:list.clear();

判断集合中是否存在某个元素(存在返回true,不存在返回false):list.contains(e);

对比两个集合中的所有元素:
两个对象一定相等:list.equals(list2);
两个对象不一定相等:list.hashCode() == list2.hashCode();
(两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。)

获得元素下标:
元素存在则返回找到的第一个元素的下标,不存在则返回-1:list.indexOf(e);
元素存在则返回找到的最后一个元素的下标,不存在则返回-1:list.lastIndexOf(e);

判断集合是否为空(空则返回true,非空则返回false):list.isEmpty();

返回Iterator集合对象:list.iterator();

将集合转换为字符串:list.toString();

截取集合(从fromIndex开始在toIndex前结束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);

将集合转换为数组:
默认类型:list.toArray();
指定类型(objects为指定类型的数组对象,并将转换好的数组赋值给objects数组):list.toArray(objects);

代码如下:

package com.wjy;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


/*
 * list实质上就是一个链表,当标号为n的节点被删除了之后,n之后的节点会依次向前递推补齐,
 * 以前标号为n+1的节点变成了标号为n的节点。以此类推。
 */
public class ListTest {
  public static void main(String[] args) {
 List list=new ArrayList();
 list.add(0,"hello");
    list.add(1,"world");
    /*
     * 上述两句话等价于     list.add("hello");
     *              list.add("world");
     * 上述两句话若是按下面这样写会出错,因为List是有顺序的
     *              list.add(1,"world");
     *              list.add(0,"hello");
     */
    list.add(2,"my");
    list.add(3,"friend");
    list.remove(2);      //按照下标删除第三个元素。
    /*
     * 以上这句话等价于
     *             list.remove("my");
     */
    list.set(2,"master");
    /*
     * 将那个下标为3,值为“friend”的元素替换成"master".
     * 注意一定不能写成
     *            list.add(3,"master");
     * 因为“friend”在list中的位置因为“my”被删除而从3变成了2。
     */
   
    System.out.println("Get string is: "+list.get(0));
    /*
     * 以上这句话等价于以下两句话String
     *                          string=(String)list.get(0); //获得list中第一个元素
     *                          System.out.println("Get string is: "+string);
     */
   // list.clear();              //这句话可以清空列表中的所有数据。
    String liststringString=list.toString();
    System.out.println("To string is: "+liststringString);
 Iterator it=list.listIterator();
 while(it.hasNext()){
  Object object=it.next();
  System.out.println(object);
 }
}
}


运行结果:
Get string is: hello

To string is: [hello, world, master]

hello

world

master
posted on 2013-04-11 09:04  王吉元  阅读(630)  评论(0编辑  收藏  举报