Vector通常被用來實現動態數組,即可實現自動增長的對象數組,和C++一樣vector類同樣被Java內置,下面就來看一下vector類的基本用法.
util.vector提供了向量類別(vector)以實現類似動態陣列的功能。在Java語言中沒有指標的概念,但如果正確且靈活地使用指標確實可以大幅提升程式的品質。例如在c,c++中所謂的「動態數組」一般都由指標來實現。為了彌補這個缺點,Java提供了豐富的類別函式庫來方便程式設計者使用,vector類別就是其中之一。事實上,靈活使用陣列也可以完成向量類別的功能,但向量類別中提供大量的方法大大方便了使用者的使用。
創建了一個向量類別的物件後,可以往其中隨意插入不同類別的對象,即不需顧及類型也不需預先選定向量的容量,並且可以方便地進行查找。對於預先不知或不願預先定義數組大小,並且需要頻繁地進行查找,插入,刪除工作的情況。可以考慮使用向量類別。Vector類別實作了一個動態陣列。和ArrayList和相似,但是兩者是不同的:
Vector是同步存取的。
Vector包含了許多傳統的方法,這些方法不屬於集合框架。
Vector主要用在事先不知道陣列的大小,或只是需要一個可以改變大小的陣列的情況。
Vector類別支援4種建構方法。
1.第一種建構方法建立一個預設的向量,預設大小為10:
Vector()
2.第二種建構方法建立指定大小的向量。
Vector(int size)
Vector(int size,int incr)
Vector(Collection c)
使用第一種方法系統會自動對向量進行管理,若使用後兩種方法。則係統將根據參數,initialcapacity設定向量物件的容量(即向量物件可儲存資料的大小),當真正存放的資料數量超過容量時。系統會擴充向量物件儲存容量。
參數capacityincrement給定了每次擴充的擴充值。當capacityincrement為0的時候,則沒次擴充一倍,利用這個功能可以優化儲存。在Vector類別中提供了各種方法方便使用者的使用:
插入功能:
(1)public final synchronized void adddElement(Object obj)將obj插入向量的尾部。 obj可以是任何類型的物件。對同一個向量對象,亦可在其中插入不同類別的對象。但插入的應是物件而不是數值,所以插入數值時要注意將陣列轉換成對應的物件。
例如:要插入整數1時,不要直接呼叫v1.addElement(1),正確的方法為:
Vector v1 = new Vector(); Integer integer1 = new Integer(1); v1.addElement(integer1);
(2)public final synchronized void setElementAt(Object obj,int index) 將index處的物件設為obj,原來的物件將被覆蓋。
(3)public final synchronized void insertElement(Object obj,int index)
在index指定的位置插入obj,原來物件以及此後的物件依次往後順延。
刪除功能:
從向量中刪除obj,若有多個存在,則從向量頭開始試,刪除找到的第一個與obj相同的向量成員。
(2)public final synchronized void removeAllElement();
刪除向量所有的物件
(3)public fianl synchronized void removeElementAt(int index)
刪除研究public final int indexOf(Object obj)
從向量頭開始搜尋obj,傳回所遇到的第一個obj對應的下標,若不存在此obj,回傳-1.
(2)public final synchronized int indexOf( Object obj,int index)
(3)public final int lastindexOf(Object obj)
從向量尾部開始逆向搜尋obj.
(4)public final synchornized int Object obj,int index)
從index所表示的下標處由尾至頭逆向搜尋obj.
(5)public final synchornized firstElement()
取得向量物件中的首個obj
(6)public final final final final final final) lastElement()
取得向量物件的最後一個obj
實例
下面的程式說明這個集合所支援的幾個方法:
import java.util.*; public class VectorDemo { public static void main(String args[]) { // initial size is 3, increment is 2 Vector v = new Vector(3, 2); System.out.println("Initial size: " + v.size()); System.out.println("Initial capacity: " + v.capacity()); v.addElement(new Integer(1)); v.addElement(new Integer(2)); v.addElement(new Integer(3)); v.addElement(new Integer(4)); System.out.println("Capacity after four additions: " + v.capacity()); v.addElement(new Double(5.45)); System.out.println("Current capacity: " + v.capacity()); v.addElement(new Double(6.08)); v.addElement(new Integer(7)); System.out.println("Current capacity: " + v.capacity()); v.addElement(new Float(9.4)); v.addElement(new Integer(10)); System.out.println("Current capacity: " + v.capacity()); v.addElement(new Integer(11)); v.addElement(new Integer(12)); System.out.println("First element: " + (Integer)v.firstElement()); System.out.println("Last element: " + (Integer)v.lastElement()); if(v.contains(new Integer(3))) System.out.println("Vector contains 3."); // enumerate the elements in the vector. Enumeration vEnum = v.elements(); System.out.println("\nElements in vector:"); while(vEnum.hasMoreElements()) System.out.print(vEnum.nextElement() + " "); System.out.println(); } }
以上實例編譯運算運算學習筆記的內容,更多相關內容請關注PHP中文網(www.php.cn)!

JavadevelovermentIrelyPlatForm-DeTueTososeVeralFactors.1)JVMVariationsAffectPerformanceNandBehaviorAcroSsdifferentos.2)Nativelibrariesviajnijniiniininiinniinindrododerplatefform.3)

Java代碼在不同平台上運行時會有性能差異。 1)JVM的實現和優化策略不同,如OracleJDK和OpenJDK。 2)操作系統的特性,如內存管理和線程調度,也會影響性能。 3)可以通過選擇合適的JVM、調整JVM參數和代碼優化來提升性能。

Java'splatFormentenceHaslimitations不包括PerformanceOverhead,versionCompatibilityIsissues,挑戰WithnativelibraryIntegration,Platform-SpecificFeatures,andjvminstallation/jvminstallation/jvmintenance/jeartenance.therefactorscomplicatorscomplicatethe“ writeOnce”

PlatformIndependendecealLowsProgramStormonanyPlograwsStormanyPlatFormWithOutModification,而LileCross-PlatFormDevelopmentRequiredquiresMomePlatform-specificAdjustments.platFormIndependence,EneblesuniveByjava,EnablesuniversUniversAleversalexecutionbutmayCotutionButMayComproMisePerformance.cross.cross.cross-platformd

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runany where”哲學。 1)itusesbytiesebyTecodeThatrunsonAnyJvm-備用Platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

在Java中編寫平台特定代碼的原因包括訪問特定操作系統功能、與特定硬件交互和優化性能。 1)使用JNA或JNI訪問Windows註冊表;2)通過JNI與Linux特定硬件驅動程序交互;3)通過JNI使用Metal優化macOS上的遊戲性能。儘管如此,編寫平台特定代碼會影響代碼的可移植性、增加複雜性、可能帶來性能開銷和安全風險。

Java將通過雲原生應用、多平台部署和跨語言互操作進一步提昇平台獨立性。 1)雲原生應用將使用GraalVM和Quarkus提升啟動速度。 2)Java將擴展到嵌入式設備、移動設備和量子計算機。 3)通過GraalVM,Java將與Python、JavaScript等語言無縫集成,增強跨語言互操作性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

禪工作室 13.0.1
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器