二.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

Collection集合学习(二)———List接口与具体实现的更多相关文章

  1. ------------------java collection 集合学习 ----小白学习笔记,,有错,请指出谢谢

    <!doctype html>java对象集合学习记录 figure:first-child { margin-top: -20px; } #write ol, #write ul { p ...

  2. java 集合框架(二)Iterable接口

    Iterable接口是java 集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素,我们可以看下它的成员方法 修饰符和返回值 方法名 描述 Iterator<T> iter ...

  3. Collection集合学习(一)———Set接口与具体实现

    接口Collection: Collection是Java的一个集合框架, 也是一个根接口.JDK中没有提供此接口的任何实现,但是提供了更具体的子接口Set和List接口的实现,所有的Collecti ...

  4. Java中的集合(二)单列集合顶层接口------Collection接口

    Java中的集合(二)单列集合顶层接口------Collection接口 Collection是一个高度封装的集合接口,继承自Iterable接口,它提供了所有集合要实现的默认方法.由于Iterab ...

  5. java学习笔记——Collection集合接口

    NO 方法名称 描述 1 public boolean add(E e) 向集合中保存数据 2 public void clear() 清空集合 3 public boolean contains(O ...

  6. JavaSE中Collection集合框架学习笔记(1)——具有索引的List

    前言:因为最近要重新找工作,Collection(集合)是面试中出现频率非常高的基础考察点,所以好好恶补了一番. 复习过程中深感之前的学习不系统,而且不能再像刚毕业那样死背面试题,例如:String是 ...

  7. 2019/3/4 java集合学习(二)

    java集合学习(二) 在学完ArrayList 和 LinkedList之后,基本已经掌握了最基本的java常用数据结构,但是为了提高程序的效率,还有很多种特点各异的数据结构等着我们去运用,类如可以 ...

  8. JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

  9. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

随机推荐

  1. 三张图看懂 clientheight、offsetheight、scrollheight

    clientheight clientheigh: 内容的可视区域,不包含border. clientheight=padding + height - 横向滚动轴高度. The Element.cl ...

  2. JFinal源码详解

    JFinal的框架我24号的一篇博文写到过,它优秀的地方在精简代码上,那么有两处源码是我觉得是值得我们要好好解析一下,一处是初始化加载—servlet跳转,另一处是DB+ActiveRecord的映射 ...

  3. [置顶] JVM层对jar包字节码加密

    github https://github.com/sea-boat/ByteCodeEncrypt 需求 拿到的需求是要对某特定的jar包实现加密保护,jar包需要提供给外部使用,但核心逻辑部分需要 ...

  4. Echart--百度地图(散点图)

    参考:http://blog.csdn.net/xieweikun7/article/details/52766676 1.首先,下载嘛 Echarts http://echarts.baidu.co ...

  5. del语句的总结

    删除属性 del 语句 可以删除对象(实例)的属性 语法: del 对象.实例变量名 del 语句 del 变量名 删除变量 del name del 列表[整数表达式] 删除列表中的元素 del L ...

  6. absolute的left和right的妙用

    之前做了一个自定义鼠标右键的布局,做的过程中遇到了一个很有趣的问题,之前一直没有注意到. 目标样式如下: 期初并不知道文字内容需要随机,所以写的时候写“死”了. 所有的内容都是按照设计的四个文字走的, ...

  7. Sharepoint Web.config trust level="Full"权限说明

    在SharePoint里面,不仅有用户的权限,还有代码的权限.比如,我们在安装一个自定义的WebPart的时候,默认的情况下是不能操纵文件夹的,如果你看一些教你怎么做WebPart的文章的话,你会发现 ...

  8. hadoop入门手册4:Hadoop【2.7.1】初级入门之命令:文件系统shell1

    问题导读1.Hadoop文件系统shell与Linux shell有哪些相似之处?2.如何改变文件所属组?3.如何改变hdfs的文件权限?4.如何查找hdfs文件,并且不区分大小写? 概述文件系统 ( ...

  9. 通过 Windows API 获取鼠标位置等状态信息

    #include <graphics.h> #include <stdio.h> void main() { initgraph(, ); // 初始化绘图窗口 HWND hw ...

  10. webpack 图片资源处理

    备注:  css 引用图片资源 1. 安装loader yarn add file-loader --dev 2. 配置 const path = require("path"); ...