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;
}
完。
分享到:
相关推荐
《深入理解C++标准库中的`vector`容器》 在C++标准库中,`std::vector`是一个非常重要的容器,它提供了动态数组的功能。在本文中,我们将深入解析一个自定义实现的`vector`类模板,以帮助我们更好地理解和应用`std:...
通过对SGI STL`vector`源码的分析,我们可以学习到C++中动态数组的实现技巧,包括内存管理、迭代器实现、异常安全策略等,这对于理解和优化C++程序的性能至关重要。通过深入理解这些内部机制,开发者可以更好地运用...
【JAVA Vector 源码解析和示例代码】 在Java编程语言中,`Vector`类是集合框架的一部分,早在JDK 1.0版本就已经存在。`Vector`类继承自`AbstractList`并实现了`List`, `RandomAccess`, `Cloneable`等接口,提供了...
在C++编程语言中,标准模板库(Standard Template Library,简称STL)是不可或缺的一部分,它提供了一系列高效、可重用的数据结构和算法。...理解和熟练运用`vector`是成为合格的C++程序员的关键步骤之一。
总的来说,"Vector-XCP 源代码"对于深入理解XCP协议、开发自己的ECU标定工具或者增强现有工具的功能具有重要意义。通过学习和使用这些源代码,开发者可以提升ECU软件开发的效率,确保项目的质量和兼容性,并且能够...
在C++编程中,`std::vector`是一个非常重要的动态数组容器,它允许高效地进行元素的添加和删除。...通过这个简化的版本,我们可以理解`std::vector`的核心机制,这有助于深入学习C++的容器类和模板元编程。
Raphael JS是一个强大的...总的来说,"Learning Raphael JS Vector Graphics"这个配套源码是深入理解Raphael库、提升JavaScript矢量图形编程能力的重要资源。无论是初学者还是经验丰富的开发者,都可以从中获益匪浅。
标题"thrust的一些源码 cuda vector容器"暗示了我们将探讨如何使用Thrust库中的vector容器在CUDA环境下进行编程。Thrust::vector是CUDA编程中常用的并行容器,它模仿了C++ STL的std::vector,但优化了在GPU上执行的...
这里我们将深入探讨这三种数据结构的源码,理解它们的内部实现、性能特性和适用场景。 首先,ArrayList是基于动态数组实现的。它的内部是一个Object类型的数组,当添加元素导致容量不足时,会自动扩容。扩容策略...
6. **源码分析**:书中提供的源码可能是作者为了帮助读者深入理解Raphael.js的工作原理和最佳实践而编写的实例代码,可以作为学习和参考的宝贵资源。 7. **性能优化**:讨论如何提高Raphael.js图形的渲染速度,以及...
源码压缩包"vector_control-源码.rar"提供了一种深入理解并实践向量控制技术的宝贵资源。向量控制,也称为磁场定向控制(Field Oriented Control,FOC),是现代电机控制领域的一种先进方法,它通过模拟直流电机的...
《VC++深入理解源码》是一本专注于解析VC++编程语言内部机制的书籍,作者孙鑫通过详尽的代码分析,带领读者深入了解VC++的源码实现,旨在提高读者对C++编译器、运行库以及相关开发工具的深度认识。这本书不仅适合有...
不过,由于原始描述并未提供具体细节,以上的解释基于对Vector初始化的一般理解。对于深入的源码分析或特定工具的使用,需要查看原文档或博客内容获取更精确的信息。遗憾的是,提供的链接已无法访问,因此无法提供更...
在C++编程中,`vector`是一个非常重要的容器,它属于标准模板库(STL)的一部分。`vector`提供了一种动态数组的概念,允许我们高效地存储和操作一系列元素。在C语言中,我们通常使用数组来存储和管理数据,但它们在...
在给定的“vector_control源码.zip”压缩包中,我们很显然关注的是与向量控制相关的源代码。向量控制是一种高级的电机控制技术,它通过模拟直流电机的特性来控制交流电动机,从而实现高精度的速度和转矩控制。这种...
通过源码,我们可以理解这些算法的内部实现,例如快速排序的分治策略、二分查找的逻辑等。 4. 函数对象(Functors):函数对象是C++中的一种函数封装方式,可以看作是具有状态的函数。STL中广泛使用函数对象来定制...
这个"最新版源码"包含的是FusionCharts的核心代码,对于深入理解其工作原理、自定义功能或进行二次开发来说是至关重要的。 首先,我们要明白FusionCharts的核心特性。它支持多种图表类型,包括柱状图、线图、饼图、...
在描述中提到的`<stl_queue.h>`、`<stl_vector.h>`和`<stl_map.h>`是STL中的关键组件,下面将详细介绍这些头文件及其源码相关的知识点。 1. ****: `queue`是STL中的一种线性容器,它遵循FIFO(First In First Out...
在C++编程语言中,`std::vector`是标准模板库(STL)中的一种容器,它提供了一种动态数组的功能。`vector`可以方便地存储、访问和操作...在分析和解决问题时,理解这些细节可以帮助我们编写更高效、更具可维护性的代码。
在Java编程语言中,`java.util.Vector`是一个重要的集合类,它是`ArrayList`的早期版本,提供了线程安全的动态数组...理解其特性和用法对于编写多线程Java程序至关重要,但同时也要权衡其性能和线程安全之间的平衡。