`
wdhdmx
  • 浏览: 303007 次
  • 性别: Icon_minigender_1
  • 来自: 山西
博客专栏
D4bbb5f7-9aa4-3e66-8194-f61b3f0241c2
天天编程
浏览量:21820
社区版块
存档分类
最新评论

Vector源码理解

阅读更多

Vector类

1.系统的变量

//记录元素的数组
protected Object[] elementData;
//上面数组的空间长度
protected int elementCount;
//有效元素数
protected int capacityIncrement;

2.构造函数

     构造方法中主要内容

       this.elementData = new Object[10];
	this.capacityIncrement = 0;

 3.add方法

public synchronized boolean add(E e) {
	modCount++;
        //验证数组空间是否够用
        ensureCapacityHelper(elementCount + 1);
        //添加进去
        elementData[elementCount++] = e;
        return true;
}
 

 这里和ArrayList相比就是增加了同步的synchronized。然后这个类的大部分都有同步操作 ,竟然还包括size这样的方法,让我很不理解,这些类似于只读得操作也需要限制吗?

public synchronized int size()

4.比ArrayList多的方法。

1.copyInto将此向量的组件复制到指定的数组中。

 public synchronized void copyInto(Object[] anArray) {
	System.arraycopy(elementData, 0, anArray, 0, elementCount);
}

2.elements() 返回此向量的组件的枚举,枚举类型以后再分析。

3.firstElement() 返回第一个元素。用了synchronized。

return (E)elementData[0];

4.lastElement() 返回最后一个元素。 用了synchronized。

return (E)elementData[elementCount - 1];

 没什么特别的地方,和ArrayList逻辑非常类似。结束

 

Strack是Vector的子类

里面没什么内容,只是封装了几个简单方法,例如:

   public synchronized int search(Object o) {
	int i = lastIndexOf(o);

	if (i >= 0) {
	    return size() - i;
	}
	return -1;
    }

 

public boolean empty() {
	return size() == 0;
    }

 完。

 

分享到:
评论

相关推荐

    vector源代码下载

    《深入理解C++标准库中的`vector`容器》 在C++标准库中,`std::vector`是一个非常重要的容器,它提供了动态数组的功能。在本文中,我们将深入解析一个自定义实现的`vector`类模板,以帮助我们更好地理解和应用`std:...

    SGI STL vector相关源码

    通过对SGI STL`vector`源码的分析,我们可以学习到C++中动态数组的实现技巧,包括内存管理、迭代器实现、异常安全策略等,这对于理解和优化C++程序的性能至关重要。通过深入理解这些内部机制,开发者可以更好地运用...

    JAVA Vector源码解析和示例代码

    【JAVA Vector 源码解析和示例代码】 在Java编程语言中,`Vector`类是集合框架的一部分,早在JDK 1.0版本就已经存在。`Vector`类继承自`AbstractList`并实现了`List`, `RandomAccess`, `Cloneable`等接口,提供了...

    vector1_STL_C++_vector_

    在C++编程语言中,标准模板库(Standard Template Library,简称STL)是不可或缺的一部分,它提供了一系列高效、可重用的数据结构和算法。...理解和熟练运用`vector`是成为合格的C++程序员的关键步骤之一。

    Vector-XCP 源代码

    总的来说,"Vector-XCP 源代码"对于深入理解XCP协议、开发自己的ECU标定工具或者增强现有工具的功能具有重要意义。通过学习和使用这些源代码,开发者可以提升ECU软件开发的效率,确保项目的质量和兼容性,并且能够...

    Vector实现代码

    在C++编程中,`std::vector`是一个非常重要的动态数组容器,它允许高效地进行元素的添加和删除。...通过这个简化的版本,我们可以理解`std::vector`的核心机制,这有助于深入学习C++的容器类和模板元编程。

    Learning Raphael JS Vector Graphics 配套源码

    Raphael JS是一个强大的...总的来说,"Learning Raphael JS Vector Graphics"这个配套源码是深入理解Raphael库、提升JavaScript矢量图形编程能力的重要资源。无论是初学者还是经验丰富的开发者,都可以从中获益匪浅。

    thrust 的一些源码 cuda vector容器

    标题"thrust的一些源码 cuda vector容器"暗示了我们将探讨如何使用Thrust库中的vector容器在CUDA环境下进行编程。Thrust::vector是CUDA编程中常用的并行容器,它模仿了C++ STL的std::vector,但优化了在GPU上执行的...

    JDK1.6中Arraylist,Vector,LinkedList源码

    这里我们将深入探讨这三种数据结构的源码,理解它们的内部实现、性能特性和适用场景。 首先,ArrayList是基于动态数组实现的。它的内部是一个Object类型的数组,当添加元素导致容量不足时,会自动扩容。扩容策略...

    Learning Raphael JS Vector Graphics 书+源码

    6. **源码分析**:书中提供的源码可能是作者为了帮助读者深入理解Raphael.js的工作原理和最佳实践而编写的实例代码,可以作为学习和参考的宝贵资源。 7. **性能优化**:讨论如何提高Raphael.js图形的渲染速度,以及...

    vector_control-源码.rar

    源码压缩包"vector_control-源码.rar"提供了一种深入理解并实践向量控制技术的宝贵资源。向量控制,也称为磁场定向控制(Field Oriented Control,FOC),是现代电机控制领域的一种先进方法,它通过模拟直流电机的...

    VC++深入理解源码

    《VC++深入理解源码》是一本专注于解析VC++编程语言内部机制的书籍,作者孙鑫通过详尽的代码分析,带领读者深入了解VC++的源码实现,旨在提高读者对C++编译器、运行库以及相关开发工具的深度认识。这本书不仅适合有...

    Vector初始化的各种写法

    不过,由于原始描述并未提供具体细节,以上的解释基于对Vector初始化的一般理解。对于深入的源码分析或特定工具的使用,需要查看原文档或博客内容获取更精确的信息。遗憾的是,提供的链接已无法访问,因此无法提供更...

    vector类 c语言版 源码 课程设计

    在C++编程中,`vector`是一个非常重要的容器,它属于标准模板库(STL)的一部分。`vector`提供了一种动态数组的概念,允许我们高效地存储和操作一系列元素。在C语言中,我们通常使用数组来存储和管理数据,但它们在...

    vector_control源码.zip

    在给定的“vector_control源码.zip”压缩包中,我们很显然关注的是与向量控制相关的源代码。向量控制是一种高级的电机控制技术,它通过模拟直流电机的特性来控制交流电动机,从而实现高精度的速度和转矩控制。这种...

    STL源码剖析pdf及源码.zip

    通过源码,我们可以理解这些算法的内部实现,例如快速排序的分治策略、二分查找的逻辑等。 4. 函数对象(Functors):函数对象是C++中的一种函数封装方式,可以看作是具有状态的函数。STL中广泛使用函数对象来定制...

    FusionCharts源码 最新版源码

    这个"最新版源码"包含的是FusionCharts的核心代码,对于深入理解其工作原理、自定义功能或进行二次开发来说是至关重要的。 首先,我们要明白FusionCharts的核心特性。它支持多种图表类型,包括柱状图、线图、饼图、...

    c++stl库头文件及其源码

    在描述中提到的`<stl_queue.h>`、`<stl_vector.h>`和`<stl_map.h>`是STL中的关键组件,下面将详细介绍这些头文件及其源码相关的知识点。 1. ****: `queue`是STL中的一种线性容器,它遵循FIFO(First In First Out...

    vector中的排序的源代码资源

    在C++编程语言中,`std::vector`是标准模板库(STL)中的一种容器,它提供了一种动态数组的功能。`vector`可以方便地存储、访问和操作...在分析和解决问题时,理解这些细节可以帮助我们编写更高效、更具可维护性的代码。

    汽车总线Can通信源码C#

    总之,汽车总线CAN通信源码C#的实现涉及对Vector CANlib库的熟练使用,包括初始化CAN设备、设置通信参数、发送和接收CAN消息,以及错误处理。这个过程对于理解和开发汽车电子系统中的通信功能至关重要。通过深入研究...

Global site tag (gtag.js) - Google Analytics