java集合_collection子接口 list的特有方法,ArrayList类体现

/*
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();
    int indexOf(obj):获取指定元素的位置。
    ListIterator listIterator();

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

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

所以,在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,
只能对元素进行判断,取出,删除的操作,
如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。

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

*/

import java.util.*;
class ListDemo
{
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
    public static void method()
    {

        ArrayList al = new ArrayList();

        //添加元素
        al.add("java01");
        al.add("java02");
        al.add("java03");

        sop("原集合是:"+al);
        //在指定位置添加元素。
        al.add(1,"java09");

        //删除指定位置的元素。
        //al.remove(2);

        //修改元素。
        //al.set(2,"java007");

        //通过角标获取元素。
        sop("get(1):"+al.get(1));

        sop(al);

        //获取所有元素。
        for(int x=0; x<al.size(); x++)
        {
            System.out.println("al("+x+")="+al.get(x));
        }

        Iterator it = al.iterator();

        while(it.hasNext())
        {
            sop("next:"+it.next());
        }

        //通过indexOf获取对象的位置。
        sop("index="+al.indexOf("java02"));

        List sub = al.subList(1,3);

        sop("sub="+sub);
    }

    public static void main(String[] args)
    {

        //演示列表迭代器。
        ArrayList al = new ArrayList();

        //添加元素
        al.add("java01");
        al.add("java02");
        al.add("java03");

        sop(al);

        ListIterator li = al.listIterator();

        //sop("hasPrevious():"+li.hasPrevious());

        while(li.hasNext())
        {
            Object obj = li.next();

            if(obj.equals("java02"))
                //li.add("java009");
                li.set("java006");

        }

        while(li.hasPrevious())
        {
            sop("pre::"+li.previous());
        }
        //sop("hasNext():"+li.hasNext());
        //sop("hasPrevious():"+li.hasPrevious());

        sop(al);

        /*
        //在迭代过程中,准备添加或者删除元素。

        Iterator it = al.iterator();

        while(it.hasNext())
        {
            Object obj = it.next();

            if(obj.equals("java02"))
                //al.add("java008");
                it.remove();//将java02的引用从集合中删除了。

            sop("obj="+obj);

        }
        sop(al);
        */

    }
}
时间: 2024-10-05 23:58:31

java集合_collection子接口 list的特有方法,ArrayList类体现的相关文章

深入浅析Java集合及LIst接口

一.集合的概念1.概述: 在学习集合前,先回忆一下数组的一个特征---数组有固定的长度,定义一个数组:int[] array = new int[];而针对数据长度可变的情况,产生了集合,java集合就是为了应对动态增长数据,在编译时无法知道具体的数据量而产生的.集合类又叫容器类. 2.集合和数组的区别 都是容器,数组时固定的长度,集合时可变的:数组存放的数据都是基本数据类型(四类八种)集合存放的数据都是引用数据类型(String.Integer.自定义数据类型)集合中对于基本数据类型会转换位引

Java集合源码学习笔记(二)ArrayList分析

Java集合源码学习笔记(二)ArrayList分析 >>关于ArrayList ArrayList直接继承AbstractList,实现了List. RandomAccess.Cloneable.Serializable接口,为什么叫"ArrayList",因为ArrayList内部是用一个数组存储元素值,相当于一个可变大小的数组,也就是动态数组. (1)继承和实现继承了AbstractList,实现了List:ArrayList是一个数组队列,提供了相关的添加.删除.修

Java集合框架——List接口

第三阶段 JAVA常见对象的学习 集合框架--List接口 按照集合框架的继承体系,我们先从Collection中的List接口开始学习 (一) 概述及功能(ArrayList演示) (1) 概述 List在Collection中充当着一个什么样的身份呢?--有序的 collection(也称为序列) 实现这个接口的用户以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素.与 set 不同,列表通常允许重复的元素. (2)List集

Java集合之Collection接口

java的集合分为三大接口,分别是Collection,Map,Iterator,集合接口和类在java.util包中,此次主要介绍三大接口之一的Collection接口. 一些Collection允许有重复元素,而另一些则不允许,一些Collection是有序的,另一些则是无序的.Collection不提供接口的任何直接实现,它提供更加具体的子接口List和Set. 1.List接口 List是有序的集合,此接口的用户队列表的每一个元素的插入位置进行精确的控制,可以根据元素的整数索引访问元素,

Java集合框架——Set接口

第三阶段 JAVA常见对象的学习 集合框架--Set接口 List集合的特点是有序的,可重复的,是不是存在这一种无序,且能保证元素唯一的集合呢?(HashSet )这就涉及到我们今天所要讲的Set集合 Set可以理解为行为不同的Collection (一) 概述及功能 (1) 概述 Collection List -- 有序(存储顺序和取出顺序一致),可重复 Set -- 无序(存储顺序和取出顺序不一致),唯一 我们首先要清楚有序无序,到底是什么意思? 集合所说的序,是指元素存入集合的顺序,当元

java集合的部分接口

接口 Collection<E> public interface Collection<E>extends Iterable<E> Collection 层次结构 中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许有重复的元素,而另一些则不允许.一些 collection 是有序的,而另一些则是无序的.JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现.

Java——集合(Collection接口),迭代器,增强for循环,泛型

一.集合 Collection接口中的方法是集合中所有实现类必须拥有的方法. ArrayList implements List List extends Collection 1.基本使用 其他 import java.util.ArrayList; /* * 集合体系, * 目标 集合本身是一个存储的容器: * 必须使用集合存储对象 * 遍历集合,取出对象 * 集合自己的特性 */ public class ArrayListDemo { public static void main(St

Java集合框架顶层接口collectiion接口

如何使用迭代器 通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素. 一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或ListIterator接口. 迭代器,使你能够通过循环来得到或删除集合的元素.ListIterator 继承了Iterator,以允许双向遍历列表和修改元素. 序号 迭代器方法描述 1 使用 Java Iterator这里通过实例列出Iterato

Java集合及LIst接口

一.集合的概念 1.概述: 在学习集合前,先回忆一下数组的一个特征---数组有固定的长度,定义一个数组: int[] array = new int[]; 而针对数据长度可变的情况,产生了集合, java集合就是为了应对动态增长数据,在编译时无法知道具体的数据量而产生的. 集合类又叫容器类. 2.集合和数组的区别 1>都是容器,数组时固定的长度,集合时可变的: 2>数组存放的数据都是基本数据类型(四类八种) 集合存放的数据都是引用数据类型(String.Integer.自定义数据类型) 3&g