zoukankan      html  css  js  c++  java
  • Collection集合学习(二)———List接口与具体实现

    二.List接口:

        一个可以包含重复元素的Collection,List中的元素不会自动排序,元素顺序由添加时的顺序决定。

        具体实现类包括Vector(线程安全的),ArrayList,LinkedList 

        基于数组的Vector,ArrayList查询操作较快,而基于双向链表的LinkedList 添加,删除操作较快

        1.ArrayList:

            我们可以将其看作是能够自动增长容量的数组,可以利用 ArrayList 的 toArray()返 回一个数组,而迭代器(Iterator) 给我们提供了一种通用的方式来访问集合中的元素。在 Java 中,标准数组是定长的,在数组创建之后,它们不能被加长或缩短,这也就意味着你必须事先知道数组可以容纳多少元素。但是,你直到运行时才能知道需要多大的数组,为了解决这个问题,类集框架定义了 ArrayList。本质上,ArrayList 是对象引用的一个变长数组,也就是说,ArrayList 能够动态地增加或减小其大小。数组列表以一个原始大小被创建,当超过了它的大小,类集自动增大,当对象被删除后,数组就可以缩小。

            ArrayList 有如下的构造函数

            –ArrayList( )  建立一个空的数组列表

            –ArrayList(Collection c)  建立一个数组列表,该数组列表由类集 c 中的元素初始化

            –ArrayList(int capacity)  建立一个数组列表,该数组有指定的初始容量(capacity)

            当使用 ArrayList 时,有时想要获得一个实际的数组,这个数组包含了列表的内容,可以通过调用方法 toArray()来实现它。下面是几个为什么可能想将类集转换成为数组的原因, a.对于特定的操作,可以获得更快的处理时间,b.为了给方法传递数组,而方法不必重载去接收类集。Arrays.asList(),返回一个受指定数组支持的固定大小的列表。此方法同 Collection.toArray 一起,充当了基于数组的 API 与基于 collection 的API 之间的桥梁。

        2.LinkedList: 

            LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.

            LinkedList的构造函数如下

            –public LinkedList():  ——生成空的链表

            –public LinkedList(Collection col):  复制构造函数

        3.Vector(线程安全): 

            Vector 有三个构造函数

            public Vector(int initialCapacity,int capacityIncrement)  Vector 运行时创建一个初始的存储容量initialCapacity,存储容量是以capacityIncrement 变量定义的增量增长

            public Vector(int initialCapacity)  只创建初始存储容量

            public Vector()  既不指定初始的存储容量也不指定capacityIncrement。

            常用方法:

                addElement(Object obj)   把组件加到向量尾部,同时大小加1,向量容量比以前大1   

                insertElementAt(Object obj, int index)  把组件加到所定索引处,此后的内容向后移动1 个单位   

                setElementAt(Object obj, int index)   把组件加到所定索引处,此处的内容被代替 

                removeElement(Object obj)       把向量中含有本组件内容移走  

                removeAllElements()      把向量中所有组件移走,向量大小为0

  • 相关阅读:
    jwt
    mybatis的回顾
    swagger
    MySQl总结
    Java异常
    常用Dos命令
    C++初级项目——机房预约系统
    C++中将数字型字符串转变为int类型的方法
    C++中int *a; int &a; int & *a; int * &a
    #define_CRT_SECURE_NO_WARNINGS的用法
  • 原文地址:https://www.cnblogs.com/z-belief/p/7217747.html
Copyright © 2011-2022 走看看