Java中的向量| 帶有示例的 Java 向量類
已發表: 2021-05-26在編程中,最常用的數據結構之一是 Java 中的 Vector。 數組是可以線性存儲數據的靜態數據結構。 類似地,java中的vector也是線性存儲數據的,但它們不限於固定大小。 相反,它的大小可以根據需要增加或縮小。 父類是 AbstractList 類,在 List 接口上實現。
在開始使用向量之前,請從 java.util.package 中導入它,如下所示:
導入 java.util.Vector
目錄
聲明和評估向量的元素
下面是如何在 java 中聲明一個向量:
公共類 Vector<V> 擴展 AbstractList<V>
實現 List<V>、RandomAccess、Cloneable、Serializable
這裡,V 是元素的類型,可以是 int、string、char 等。
就像我們訪問數組中的數據成員一樣,我們也可以通過使用元素的索引在向量中做到這一點。 例如,向量 E 的第二個元素可以作為 E[2] 訪問。
在 java 中聲明向量時出現的一些常見錯誤:
- 如果向量的初始大小為負值,則會引發 IllegalArgumentException
- 如果指定的集合為空,則拋出 NullPointerException
- 向量的大小小於或等於向量的容量
- 如果未指定向量增量,則容量在每個增量週期中翻倍
構造函數
1. 向量(int initialCapacity, int Increment)
這將在 java 中創建一個具有指定初始容量的向量,並且還指定了增量。 使用增量,指定每次向上調整向量大小時分配的元素數。
語法:Vector<V> e = new Vector<V>(int initialCapacity, int Increment);
2. 向量(int initialCapacity)
它在 java 中創建一個初始容量等於指定大小的向量。
語法:Vector<V> e = new Vector<V>(int initialCapacity);
3.向量()
它在 java 中創建一個初始默認容量為 10 的向量。
語法:Vector<V> e = new Vector<V>();
4.矢量(集合c)
它在 java 中創建一個向量,其元素是集合 c 的元素。
語法:Vector<V> e = new Vector<V>(Collection c);
下面是一個例子來演示java中向量的創建和使用:
代碼
導入 java.util.*;
公共類主{
公共靜態無效主要(字符串 [] 參數)
{
// 創建默認向量
向量 a = 新向量();
// 創建一個指定大小的向量
向量 b = 新向量 (20);
// 創建一個指定大小和增量的向量
向量 c = 新向量(30,10);
b.添加(100);
b.添加(200);
b.添加(300);
// 創建具有指定集合的向量
向量 d = 新向量(b)
System.out.println(“容量向量a” + a.capacity());
System.out.println(“向量b的容量” + b.capacity());
System.out.println(“容量向量c” + c.capacity());
System.out.println(“容量向量d” + d.capacity());
}}
輸出
注意: .capacity() 用於返迴向量的容量。
java中的向量具有三個受保護的參數,如下所示:
1. Int elementCount() - 它告訴向量包含的元素數量
2. Int capcityIncremen()- 當向量的大小變得大於容量時,容量會自動增加。
3. Object[] elementData()- 向量的元素存儲在數組中。
方法
以下是java中一些常用的vector方法:
1.添加元素
Boolean add(Object o) - 一個元素被附加到向量的末尾
void add(int index V element)-給定的元素被添加到向量中的指定索引
在java中添加Vector元素的代碼:
導入 java.util.*;
導入java.io.*;
公共類 AddElementsToVector {
公共靜態無效主(字符串[] arg)
{
// 創建一個默認向量
向量 a = 新向量();
// 使用 add() 方法添加元素
a.添加(1);
a.添加(2);
a.add(“vect”);
a.add(“為”);
a.添加(3);
System.out.println(“向量 a 為 ” + a);
// 創建一個通用向量
向量<整數> b = 新向量<整數>();
b.添加(0);
b.添加(1);
b.添加(2);
System.out.println(“向量 b 為 ” + b);
}
}
輸出
2.刪除元素
Boolean Remove(object o) – 用於移除向量中指定索引處的元素
當元素被移除時,所有元素都向左移動以填充空格; 然後更新索引。
說明在 java 中從向量中刪除元素的代碼:
導入 java.util.*;
導入java.io.*;
公共類刪除{
公共靜態無效主(字符串[] arg)
{
// 創建一個默認向量
向量 a = 新向量();
// 使用 add() 方法添加元素
a.添加(1);
a.添加(2);
a.add(“vect”);
a.add(“為”);
a.添加(4);
// 移除元素
a.刪除(2);
// 查看
System.out.println(“刪除後:” + a);
}
}
輸出
Checkout:如何在 Java 中取得成功?
3.改變元素
set() 方法可用於在添加元素後更改元素。 元素的索引可以被引用為向量被索引。 此方法採用索引和更新的元素。
在java中更改vector中元素的代碼
導入 java.util.*;
公共類更新{
公共靜態無效主(字符串參數 [])
{
// 創建一個空向量
向量<整數> a = 新向量<整數>();
// 添加元素
a.添加(1);
a.添加(2);
a.添加(3);
a.添加(10);
a.添加(20);
// 展示
System.out.println(“向量:” + a);
// 代替
System.out.println(“替換”
+ a.set(0, 22));
System.out.println(“替換”
+ a.set(4, 50));
// 顯示修改後的向量
System.out.println(“新向量是:” + a);
}
}
輸出
4. 迭代向量
有幾種方法可以遍歷向量。 其中之一是 get() 方法。 這是一個在 java 中迭代 Vector 中元素的程序:
導入 java.util.*;
公共類迭代{
公共靜態無效主(字符串參數 [])
{
// 創建一個向量實例
向量<String> a = 新向量<>();
// 使用 add() 方法添加元素
a.add(“向量”);
a.add(“在”);
a.add(1, “java”);
// 使用 Get 方法和 for 循環
for (int i = 0; i < a.size(); i++) {
System.out.print(a.get(i) + ” “);
}
System.out.println();
// 用於每個循環
對於(字符串str:a)
System.out.print(str + ” “);
}
}
輸出
閱讀: Java 架構和組件
其他重要方法
- Int size() – 用於返迴向量的大小
- Object get(int index) – 用於返迴向量中指定位置的元素
- Object firstElement() – 用於返回java中vector的第一個元素
- Object lastElement() - 用於返回java中vector的最後一個元素
- Boolean equals(Object o) -用於比較向量與給定對像是否相等。 如果所有元素在它們各自的索引處都為真,則返回真
- void trimtosize() - 用於移除額外容量並保持容量等於大小
更多關於向量
- Java中的向量是一種動態數據結構,可以使用整數索引進行訪問。
- 雖然類似於 ArrayList,但它是同步的,包含一些在集合框架中不可用的遺留方法。
- 廣告訂單保持不變。
- 它很少在非線程環境中使用。
- 由於同步,向量在搜索、添加、更新和刪除元素時性能較差。
- 矢量類的迭代器快速失敗並在並發修改的情況下拋出 ConcurrentModificationException。
- 堆棧是其直接已知的子類。
向量中的內存分配
如上所示,向量沒有定義的大小。 相反,java 中的向量可以動態改變其大小。 假設向量分配無限空間來存儲元素。 然而,事實並非如此。 向量的大小根據兩個字段“容量增量”和“容量”進行更改。
聲明向量時,會分配一個等於大小的“容量”字段,並且可以添加等於容量的元素。 一旦插入下一個元素,數組的大小就會增加“容量增量”大小。 這使向量能夠改變其大小——當插入新元素時,默認構造函數的容量加倍。
從世界頂級大學在線學習軟件課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
Java中Vector的優點
向量的動態大小避免了內存浪費,並且我們的數據結構的大小可以在程序中間隨時更改。
向量和 ArrayList 都是動態的。 但是,向量更有利,因為:
- 向量是同步的。
- 它有一些不能在 ArrayLists 上實現的遺留功能。
結論
Java 中的向量是一個沒有大小限制的動態數組,它是自 Java 1.2 以來 Java 集合框架的一部分。 我們在這篇博客中看到了各種構造函數和常用的向量方法。 值得注意的是,Vector 類只能在線程安全的環境中使用。
如果您有興趣了解有關 Java、OOP 和全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的軟件開發執行 PG 計劃 – 全棧開發專業化,專為工作專業人士設計,提供 500 多個小時嚴格的培訓、9 個以上的項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。
Java中的向量是什麼?
向量是 Java 中的一種數據結構。 顧名思義,向量是一種元素序列。 它使用一個動態數組,該數組在訪問時會增長和縮小。 它有一個 size() 方法來獲取向量的當前大小和一個 capacity() 方法來獲取向量的容量。 這兩種方法返回大於零的值。 向量的容量是可以存儲在向量內而無需分配新數組的元素的數量。 向量的大小是當前存儲在向量內的元素的數量。
向量相對於數組有什麼優勢?
數組的大小是固定的,這意味著它們不能根據需要增長或縮小。 向量被實現為可動態調整大小的數組,允許它們根據需要增長和縮小。 這對於數據的持續增長很有用; 例如,逐行讀取文本文件的程序將能夠隨著文件的大小而增長。 向量通常比數組更有效。 這是因為向量被實現為引用數組(java.lang.Objects),而數組被實現為對像數組。
Java 中的 ArrayList 是什麼?
ArrayList 類表示一個動態數組。 它可以根據需要增長以適應新元素。 該數組實際上是作為對象引用的列表來實現的。 每當需要創建元素時,都會提供對新對象的引用。 這是可能的,因為 ArrayList 是作為可動態調整大小的列表實現的。 ArrayList 從 AbstractList 繼承了它的大部分方法和字段。 ArrayList 比數組快,因為它不必創建新對象。 改變數組大小的變異方法(例如添加、設置和刪除)被稱為破壞性方法,因為它們會永久改變數組的大小。