`
java2000.net
  • 浏览: 651284 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

从源代码看ArrayList和Vector的真正区别

阅读更多
原文地址:http://www.java2000.net/p9750

今天正好看到了这个东西,一直都是看别人的资料,决定自己亲自看看源代码。JDK版本为 6.0_04 的

1 声明没有任何区别

public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable;

public class Vector<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable;

2 构造器方法,默认都是10个初始化容量。Vector带每次增加容量的参数
public ArrayList(int initialCapacity);

public Vector(int initialCapacity);
public Vector(int initialCapacity, int capacityIncrement);


3 add等方法,Vector是同步的方法
ArrayList
public boolean add(E e);

Vector
public synchronized boolean add(E e);

4 尺寸和长度,私有变量不同。
ArrayList.size;
Vector.elementCount;

5 其它方法
Vector 比ArrayList方法多,不过一部分是重复的
public synchronized void copyInto(Object[] anArray);
public synchronized void setSize(int newSize);
public synchronized int capacity();
public Enumeration<E> elements();
public synchronized E elementAt(int index);
public synchronized E firstElement();
public synchronized E lastElement();
public synchronized void setElementAt(E obj, int index) ;
public synchronized void removeElementAt(int index);
public synchronized void insertElementAt(E obj, int index);
public synchronized void addElement(E obj);
public synchronized boolean removeElement(Object obj);
public synchronized void removeAllElements();









<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
分享到:
评论

相关推荐

    java vector 使用实例

    `vectorTest`可能是包含`Vector`使用实例的源代码文件,它可能演示了上述操作的实际应用。通过阅读和分析这个文件,你可以更好地理解`Vector`在实际编程中的使用情况。 总结起来,`Vector`在Java中提供了一种线程...

    源代码类型判断标准.docx

    源代码类型判断标准 源代码类型判断标准是指通过对源代码文件的分析和处理,判断该文件所属的源...通过对源代码文件的分析和处理,可以判断该文件所属的源代码类型,从而方便程序员和开发者对源代码文件的管理和维护。

    手机管理系统源代码(虽然简单仅供大家参考)

    例如,如何使用ArrayList或Vector来存储和管理手机型号、库存数量等数据,如何利用J2ME的用户界面组件(如Form、ChoiceGroup)创建交互式的操作界面,以及如何实现数据持久化,如使用RecordStore保存和读取销售记录...

    java String Vector简单初学者代码

    在初学者的代码示例中,可能会演示如何创建和操作`String`对象,如何使用`Vector`存储和操作数据,以及如何通过`Scanner`从用户那里获取输入。这些基本操作是构建更复杂程序的基础,对理解和编写Java代码至关重要。 ...

    数据结构(Java版) 源代码

    在这个"数据结构(Java版) 源代码"的压缩包中,我们可以找到用Java编写的典型数据结构的实现,这对我们学习和理解数据结构具有极大的价值。 首先,我们要明白数据结构的基本类型,包括线性结构(如数组、链表)、树...

    中国象棋源代码JAVA程序.pdf

    从给定的文件内容中,我们可以提取出一些关键的知识点,这些知识点主要围绕着使用Java语言开发的中国象棋游戏的源代码部分。虽然文件内容不完整,但我们可以根据现有信息尝试还原程序的基本结构和功能实现。 ### ...

    基于java的简单模拟的J2ME潜艇大战源代码.zip

    开发者可能还使用了ArrayList或Vector来存储游戏对象,如潜艇和子弹,以便于动态管理。 为了运行这个游戏,你需要一个支持J2ME的模拟器或实际设备,如Nokia的Java SDK或NetBeans IDE,它们都有内置的J2ME模拟器。...

    ArrayList源码.zip

    本压缩包文件“ArrayList源码.zip”包含ArrayList的源代码,可以帮助我们深入理解其内部工作原理和优化策略。 ArrayList的核心实现是通过一个Object类型的数组来存储元素。当添加元素时,如果当前容量不足,...

    VC7.0转化为VC6.0程序源代码

    3. **源代码转换**:由于语言特性和API的变化,从.NET 2003到VC6.0的源代码转换可能涉及语法、类库、API调用等多个方面的修改。例如,.NET中的System.Collections.ArrayList在VC6.0中可能需要使用C++的STL(Standard...

    java音乐播放器源代码

    压缩包中的"ayaMusicPlayer"可能是整个项目的源代码文件夹,里面包含了Java源代码文件(.java),可能还包含音频资源文件和配置文件。通过查看这些源代码,我们可以深入学习如何将Swing组件和音频处理API结合,构建...

    java 运用Vector的资源

    6. **MyVector.java**:这是一个可能包含自定义`Vector`类或使用`Vector`的Java源代码文件。通过阅读和分析这个文件,我们可以看到`Vector`在实际项目中的应用方式,以及可能的扩展或定制。 总之,`Vector`虽然在...

    javaME电子课程表和电话薄源代码

    这个“javaME电子课程表和电话薄源代码”是一个基于JavaME开发的应用程序,旨在帮助用户管理和跟踪他们的课程安排以及联系人信息。 1. **JavaME基础** JavaME为开发者提供了在资源有限的设备上开发应用程序的框架...

    网上购物系统源代码

    网上购物系统源代码是一个用于学习和实践电子商务技术的宝贵资源,尤其对于初学者而言,它提供了深入了解和构建基于JSP的Web应用的机会。这个系统旨在模拟真实的在线购物体验,允许用户浏览商品、添加到购物车并进行...

    Java 实例 - 栈的实现源代码-详细教程.zip

    总之,这个"Java实例 - 栈的实现源代码-详细教程"将引导你逐步了解和掌握如何在Java中实现和使用栈。通过实践这些源代码,你可以巩固理论知识,提高编程技能,并为解决复杂问题做好准备。无论是初学者还是经验丰富的...

    jdk1.1源代码

    `java.util`包则包含`ArrayList`和`Vector`等早期的容器类,它们是现代`List`接口的前身。 2. **事件模型** JDK1.1引入了AWT(Abstract Window Toolkit)作为Java的第一个图形用户界面库,其中包含组件、布局管理...

    《Java语言程序设计(Java7) 入门与提高篇》源代码

    - ArrayList、LinkedList和Vector的区别与选择 - HashSet、TreeSet和LinkedHashSet的实现与特性 - HashMap、TreeMap和LinkedHashMap的区别 - Iterator和ListIterator迭代器的使用 - 泛型:类型参数化和通配符 ...

    J2ME应用实例源代码

    开发者可能需要使用ArrayList或Vector等数据结构存储游戏对象,以便于更新和遍历。 4. **时间管理与动画** J2ME游戏中的动画效果通常通过定时器(Timer)和线程(Thread)实现。定时器用于定期执行任务,如更新...

    实战JAVA高并发程序设计—源代码

    这个资料包包含了丰富的源代码示例,旨在帮助开发者深入理解Java并发编程的核心概念和技术。以下是这个主题中涉及的一些关键知识点: 1. **线程与并发基础**:Java中的并发是通过线程实现的,了解线程的创建(如`...

    JavaExamples2快速点击·所有集合源代码

    "JavaExamples2快速点击·所有集合源代码"显然是一份包含与Java集合相关的示例代码的压缩包,旨在帮助开发者更好地理解和运用Java集合框架。下面我们将详细探讨Java集合框架中的主要组件以及它们的应用。 1. **...

    Java 实例 - 获取向量的最大元素源代码-详细教程.zip

    - `Vector`与数组、`ArrayList`的区别,特别是在线程安全性和性能方面。 - 如何处理空向量或所有元素相同的向量。 - 使用异常处理来确保程序的健壮性,例如检查向量是否为空。 - 在实际项目中如何应用这些概念,如...

Global site tag (gtag.js) - Google Analytics