码迷,mamicode.com
首页 > 其他好文 > 详细

Colletion学习-01

时间:2015-04-16 10:34:52      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:collection

Collection

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

        |--ArrayList:底层的数据结构使用的是数组结构  查询速度快 线程不同步。

        |--LinkedList:底层使用的是链表数据结构 增删速度很快 查询稍慢。

        |--Vector:底层的数据结构使用的是数组结构 线程同步,被ArrayList替代了。

    |--Set :元素无序,不可重复

    

List:

    特有方法。凡是可以操作交表的方法都是该体系特有的方法。

    add(index,element);

    addAll(index,Collection);

    

    remove(index);

    

    set(index,element);

查    

    get(index);

    subList(from,to);

    listIterator();


    假设ArrayList al = new ArrayList();

      //获取所有元素

      for(int x = 0,x<al.size(),x++)//List集合没有length属性

        {

            System.out.println(al.get(x));

        }

   




ListIterator 

列表迭代器

List集合特有的迭代器。ListIterator是Iterator的子接口

在迭代时 不可以通过集合对象的方法操作集合中的元素,因为会发生并发修改异常(ConcurrentModificationException)

所以在迭代时,只能用迭代器的方法操作元素,可是Iterator方法是有限的

只能对元素进行判断,取出,删除的操作

如果想要其他的操作如添加,修改,就需要其子接口 ListIterator

该接口只能通过List集合的ListIterator方法获取。


     /*  

     Iterator it = al.iterator

        while(it.hasNext())

        {

            //System.out.println(it.next());

           

            Object obj = it.next();

            if(obj.equlas("java"))    

                //al.add("java01") 此时,迭代器和集合都可以对引用进行操作--并发访问(不能对同一种元素进行多种操作)

                //it.remove() 当打印时,obj元素不变,al容器中“java”被删除,将javac的引用从集合中删除了,但是obj在使用,所以可以被打印出来

            System.out.println(obj);

         }

          System.out.println(al);


        /*


        ListIterator li = al.ListIterator();

        

         while(li.hasNext())

        {

            Object obj = li.next();

            if(obj.equlas("java")) 

            li.add("java02");//与上面绿色字体对比

        }

 

LinkedList

特有方法:

addFirst();//把元素放到第一位 其他位上的依次后移

addLast();


getFirst();////获取元素但不删除

getLast();


removeFirst();//获取元素并且删除

removeLast();

remove如果列表为空 跑出NoSuchElementException

所以一般用

offerFirst();

offerLast();

addFirst/addLast 返回类型为void 而offerFirst/offerLast 返回类型为boolean

如果在一个有限的容器中插入时,超出容器长度,前者抛出异常 后者返回False

peekFirst();

peekLast();

获取元素不删除 如果没有元素 返回null

pollFirst();

pollLast();

获取元素并删除 如果没有元素, 返回null

LinkedList link = new LinkedList



Colletion学习-01

标签:collection

原文地址:http://wwking.blog.51cto.com/9291287/1633198

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