C++程序员学Java系列之三十:数据结构之向量Vector

2024-05-25 09:08

本文主要是介绍C++程序员学Java系列之三十:数据结构之向量Vector,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java Vector 类

Vector类是动态数组。和ArrayList和相似,但是两者是不同的:

  • Vector是同步访问的。
  • Vector包含了许多传统的方法,这些方法不属于集合框架。

Vector主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。

Vector类支持4种构造方法。

第一种构造方法创建一个默认的向量,默认大小为10:

Vector()

第二种构造方法创建指定大小的向量。

Vector(int size)

第三种构造方法创建指定大小的向量,并且增量用incr指定. 增量表示向量每次增加的元素数目。

Vector(int size,int incr)

第四中构造方法创建一个包含集合c元素的向量:

Vector(Collection c)

除了从父类继承的方法外Vector还定义了以下方法:

序号 方法描述
1 void add(int index, Object element) 
 在此向量的指定位置插入指定的元素。
2 boolean add(Object o) 
 将指定元素添加到此向量的末尾。
3 boolean addAll(Collection c) 
将指定 Collection 中的所有元素添加到此向量的末尾,按照指定 collection 的迭代器所返回的顺序添加这些元素。
4 boolean addAll(int index, Collection c) 
在指定位置将指定 Collection 中的所有元素插入到此向量中。
5 void addElement(Object obj) 
 将指定的组件添加到此向量的末尾,将其大小增加 1。
6 int capacity() 
返回此向量的当前容量。
7 void clear() 
从此向量中移除所有元素。
8 Object clone() 
返回向量的一个副本。
9 boolean contains(Object elem) 
如果此向量包含指定的元素,则返回 true。
10 boolean containsAll(Collection c) 
如果此向量包含指定 Collection 中的所有元素,则返回 true。
11 void copyInto(Object[] anArray) 
 将此向量的组件复制到指定的数组中。
12 Object elementAt(int index) 
返回指定索引处的组件。
13 Enumeration elements() 
返回此向量的组件的枚举。
14 void ensureCapacity(int minCapacity) 
增加此向量的容量(如有必要),以确保其至少能够保存最小容量参数指定的组件数。
15 boolean equals(Object o) 
比较指定对象与此向量的相等性。
16 Object firstElement() 
返回此向量的第一个组件(位于索引 0) 处的项)。
17 Object get(int index) 
返回向量中指定位置的元素。
18 int hashCode() 
返回此向量的哈希码值。
19 int indexOf(Object elem) 
 返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回 -1。
20 int indexOf(Object elem, int index) 
 返回此向量中第一次出现的指定元素的索引,从 index 处正向搜索,如果未找到该元素,则返回 -1。
21 void insertElementAt(Object obj, int index) 
将指定对象作为此向量中的组件插入到指定的 index 处。
22 boolean isEmpty() 
测试此向量是否不包含组件。
23 Object lastElement() 
返回此向量的最后一个组件。
24 int lastIndexOf(Object elem) 
 返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回 -1。
25 int lastIndexOf(Object elem, int index) 
返回此向量中最后一次出现的指定元素的索引,从 index 处逆向搜索,如果未找到该元素,则返回 -1。
26 Object remove(int index) 
 移除此向量中指定位置的元素。
27 boolean remove(Object o) 
移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。
28 boolean removeAll(Collection c) 
从此向量中移除包含在指定 Collection 中的所有元素。
29 void removeAllElements() 
从此向量中移除全部组件,并将其大小设置为零。
30 boolean removeElement(Object obj) 
从此向量中移除变量的第一个(索引最小的)匹配项。
31 void removeElementAt(int index) 
删除指定索引处的组件。
32 protected void removeRange(int fromIndex, int toIndex)
从此 List 中移除其索引位于 fromIndex(包括)与 toIndex(不包括)之间的所有元素。
33 boolean retainAll(Collection c) 
在此向量中仅保留包含在指定 Collection 中的元素。
34 Object set(int index, Object element)
 用指定的元素替换此向量中指定位置处的元素。
35 void setElementAt(Object obj, int index) 
将此向量指定 index 处的组件设置为指定的对象。
36 void setSize(int newSize) 
 设置此向量的大小。
37 int size() 
 返回此向量中的组件数。
38 List subList(int fromIndex, int toIndex) 
返回此 List 的部分视图,元素范围为从 fromIndex(包括)到 toIndex(不包括)。
39 Object[] toArray()
 返回一个数组,包含此向量中以恰当顺序存放的所有元素。
40 Object[] toArray(Object[] a) 
返回一个数组,包含此向量中以恰当顺序存放的所有元素;返回数组的运行时类型为指定数组的类型。
41 String toString() 
返回此向量的字符串表示形式,其中包含每个元素的 String 表示形式。
42 void trimToSize() 
  对此向量的容量进行微调,使其等于向量的当前大小。


样例:

import java.util.Vector;public class JavaTest {public static void main(String[] args) {// TODO Auto-generated method stub// 3表示Vector初始化时容量为3,2表示每次扩容+2个容量Vector<Integer> v = new Vector<Integer>(3, 2);System.out.println("大小:" + v.size() + ",容量:" + v.capacity());v.add(1);v.add(2);v.add(3);System.out.println("大小:" + v.size() + ",容量:" + v.capacity());v.add(4);System.out.println("大小:" + v.size() + ",容量:" + v.capacity());v.addElement(new Integer(5));System.out.println(v.firstElement());System.out.println(v.lastElement());System.out.println("------------------");for (Integer integer : v) {System.out.println(integer);};System.out.println("大小:" + v.size() + ",容量:" + v.capacity());System.out.println("------------------");System.out.println("索引为2的数据:"+v.get(2));v.remove(2);//索引下标System.out.println("索引为2的数据:"+v.get(2));for (Integer integer : v) {System.out.println(integer);};System.out.println("大小:" + v.size() + ",容量:" + v.capacity());System.out.println("after call clear()...");v.clear();for (Integer integer : v) {System.out.println(integer);};System.out.println("大小:" + v.size() + ",容量:" + v.capacity());}
}





这篇关于C++程序员学Java系列之三十:数据结构之向量Vector的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001075

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd