黑马程序员_java集合框架——List

来源:互联网 发布:seo网站排名优化软件 编辑:程序博客网 时间:2024/05/12 10:11
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! 


----------------------


List接口是Collection派生的一个接口,而Collection接口是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。所有实现Collection接口的必须提供两个标准的构造函数。

Collection中定义了集合框架的共性功能:

1.添加

add(e);

addAll(collection); 将指定 collection 中的所有元素都添加到此 collection 中

2.删除

 remove(e);

 remove(collection);

 clear();清空集合

3.判断

 contians(e);

 isEmpty();判断集合是否为空

4.获取

iterator();迭代器方式(迭代器就是出去集合中元素的方法,迭代器取出方式会直接访问集合的元素,所以迭代

                        器通过内部类的形式来进行描述,。通过容器的iterator()方法获取该内部类的对象)

迭代器:

     public class Demo

{

         public static void main(String[] args) {

           ArrayList al=new ArrayList();

           al.add("");

           Iterator iterator=al.iterator();

           while(iterator.hasNext())

           {

               Objectobj=iterator.next();

               System.out.println(obj);

           }

}

     }

  size();判断集合的长度  (与length()方法区别)

注意:

    1.Collection集合的add方法的参数类型是Object,便于接收任意类型的对象。

    2.集合中存储的都是对象的引用。

List集合的特点:因为该集合体系有索引,所以集合是有序的,元素可以重复;

                    ArrayList:底层使用的数据结构是数组。特点:查询速度快,但增删慢且线程不同步。

 

List集合的子类:     LinkedList:底层使用的数据结构是链表。特点:增删速度快,但查询速度慢且线程不同步。

 

                     Vector:底层使用的数据结构是数组。由于效率低被ArrayList替代,是线程同步的。

List集合特有的方法:凡是可以操作角标的方法都是该体系的特有方法。List集合判断元素是否相同,依据是元素的

                     equals方法。

   增

     add(incex,element);

     addAll(index,collection);

   remove(index);

set(index,element);

   get(index);

   subList(int from,int to);返回列表中指定的视图

   int indexOf(obj):获取指定元素在列表中的位置。

ListIterator listIterator();

 

ListIterator与Iterator的区别:

1.Iterator是ListIterator的父接口;

2.Iterator是单列集合(Collection)公共取出容器中元素的方式,对List,Set都能通用,而ListIterator是List集合的特有取出方式;

3.Iterator中具备的功能只有hasNext(),next(),remove()方法

  ListItertor中具备这对遍历集合的元素进行增删该查的方法可以对元素进行逆向遍历,因为ListIterator遍历的元素在容器都有索引。

ArrayList:ArrayList类封装了一个动态再分配的Object[]数组。每个ArrayList对象有一个capacity。这个capacity表示存储列表中元素的数组的容量。当元素添加到ArrayList时,它的capacity在常量时间内自动增加。

    ArrayList集合中去除重复元素的方法

          public static ArrayListonlySingleElement(ArrayList al)

{

               //定义一个临时容器

               ArrayListnewArrayList=new ArrayList();

               Iteratoriterator=newArrayList.iterator();

               while(iterator.hasNext())

               {

                  Object object=iterator.next();

                  if(!newArrayList.contains(object))

                  newArrayList.add(object);

               }

               return newArrayList;

      }

LinkedList:

    LinkedList特有的方法

addFrist();将指定元素插入此列表的开头

addLast();

               

getFrist();返回此列表的第一个元素

getLast();

getFrist()和getLast()方法是获取元素,但是不删除元素,如果集合中没有元素,会抛出NoSuchElementException

      removeFrist();

      removeLast();

获取元素,但是元素被删除,如果没有此元素,会抛出NoSuchElementException

               

在JDK1.6出现了替代方法。

offerFirst();

offerLast();

 

peekFirst();

peekLast();

获取元素,但不删除元素。如果集合中没有元素,会返回null。

 

pollFirst();

pollLast();

获取元素,但是元素被删除。如果集合中没有元素,会返回null。


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! 


----------------------
原创粉丝点击