Java中顺序表与向量应用浅析

更新时间:2023-10-25 15:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

龙源期刊网 http://www.qikan.com.cn

Java中顺序表与向量应用浅析

作者:龙军

来源:《硅谷》2012年第18期

摘 要: 对顺序表与向量做简单介绍,着重比较两者的数据结构、容量增长、线程安全性和运行效率,得出各自适用范围,并通过示例方便读者了解两者的应用。 关键词: 数组;向量;顺序表

程序设计语言中通过数组将若干同类型数据有序的集合在一起,各元素位置固定,元素个数就是数组的长度。但当集合中删除或插入元素时,数组就显得捉襟见肘,c++使用链表,Java先是用向量(Vector),后又可通过顺序表(ArrayList)

完成。Vector和ArrayList均可保存一列数据,并提供众多方法来操作这些数据。在JDK1.5之后,Vector被重新设计为泛型,成为AbstractList的子类,实现了Iterator接口,与集合充分兼容。

1 顺序表(ArrayList)与向量(Vector)的基本概念

ArrayList是一个泛型类,支持动态数组,通过类型参数表示其存储元素的类型。它预先给ArrayList对象分配存储空间,插入元素时,若空间不够则自动增加空间,删除时则自动减少空间。ArrayList常用的方法有add(插入)、get(获得)、remove(删除)、set(设置)、size(获得容量)等。

Vector继承自AtrastractList,实现了Serializable,Cloneable,Iterable,Collection,List,RandomAccess的接口,是曾经使用最为广泛的顺序表。Vector常用的方法除了ArrayList的还有addElement(增加)、elementAt(获得)、indexOf和lastindexOf(查找)、setSize(设置容量)等,并含有capacityIncrement(容量增长数目)、elementCount(元素数目)、elementData(数据实际存储区域)3个成员变量。 2 顺序表(ArrayList)与向量(Vector)的比较 2.1 ArrayList与Vector的数据结构比较

ArrayList和Vector均将数据存储在私有的Object数组中,ArrayList源代码是:“private transient Object elementData[];”,Vector源代码是:“protected Object elementData[];”。在增加数据时(如用add()及addAll()),先判断elementData[]的大小是否够用,若不够则构造一更大的数组,用System.arraycopy()将原数组elementData []拷贝到这个数组中,并把add()的参数增加进去。

本文来源:https://www.bwwdw.com/article/6k02.html

Top