6、Collection(List集合)

来源:互联网 发布:2017人工智能最新消息 编辑:程序博客网 时间:2024/06/06 03:43

List:

|--List 元素是有序的,元素可以重复,因为该集合体系有索引。

         |--ArrayList:底层数据结构使用的是数组结构,特点:查询速度很快,但是增删慢,线程不同步
        注意:对于判断的元素是否存在,以及删除等操作,只依赖equals方式 
         |--LinkedList:底层使用的链接数组结构。特点:增删速度快,查询慢
List
特有方法。凡是可以操作角标的方法都是该体系特有的方法。

    add(index,element);
   addAll(index,Collection);

    remove(index);

    set(index,element);

    get(index);
    subList(from,to);

    listIterator();


ArrayList例子

import java.util.ArrayList;import java.util.Iterator; public class ArrayListDemo2 {     public static void main(String[] args)     {        ArrayList arr = new ArrayList();        arr.add(new Person("李鸿章", 60));        arr.add(new Person("李鸿章", 60));        arr.add(new Person("袁世凯", 58));        arr.add(new Person("张作霖", 65));            arr = singleElement(arr);        for(Iterator it = arr.iterator(); it.hasNext();)        {            Person p = (Person)it.next();            System.out.print(p.toString()+" ");        }           }        public static ArrayList singleElement(ArrayList arr)    {        ArrayList newArray = new ArrayList();               for(Iterator it = arr.iterator(); it.hasNext();)        {            Object obj = it.next();           //判断如果obj里面为空 则传入新的元素            if(!(newArray.contains(obj)))                newArray.add(obj);        }        return newArray;    }} class Person{    private String name;    private int age;    public Person(String name,int age)     {        this.name = name;        this.age = age;    }    public void setName(String name) {        this.name = name;    }    public void setAge(int age) {        this.age = age;    }       public String toString()    {        return this.name+this.age;    }    public boolean equals(Object obj)    {                if(!(obj instanceof Person))            return false;        Person p =(Person)obj;        return this.name.equals(p.name) && this.age == p.age;    }}

LinkedList

JDK1.0版本的写法
addFirst();
addLast();
?
getFirst(); //先进后出
getLast();//先进先出
可以获取元素,但不能删除元素,如果集合中没有元素,会抛出NoSuchElementException
removeFirst();
removeLast();
可以获取元素,但元素被删除,如果集合中没有元素,会抛出NoSuchElementException


JDK1.0版本以上的写法
offerFirst();
offerLast();
peekFirst();//先进后出
peekLast();//先进先出
获取元素,但不删除元素。如果集合中没有元素,会返回null。
pollFirst();
pollLast();
获取元素,但是元素被删除。如果集合中没有元素,会返回null。

LinkedList 例子

import java.util.LinkedList;public class LinkedListDemoTest {     public static void main(String[] args)     {        DuiLie link = new DuiLie();        link.myAdd("1");        link.myAdd("2");        link.myAdd("3");        link.myAdd("4");        while (!link.isNull())         {            System.out.println(link.myGet());                   }    } } class DuiLie{    private LinkedList link;    public DuiLie()    {        link = new LinkedList();    }    public void myAdd(Object obj)    {        link.addFirst(obj);    }    public Object myGet()    {        return link.getFirst();    }     public boolean isNull()    {        return link.isEmpty();    }}



0 0
原创粉丝点击