欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java vector的詳解及實(shí)例

 更新時間:2017年03月03日 14:55:45   投稿:lqh  
這篇文章主要介紹了Java vector的詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下

Vector 可實(shí)現(xiàn)自動增長的對象數(shù)組。

java.util.vector提供了向量類(vector)以實(shí)現(xiàn)類似動態(tài)數(shù)組的功能。在Java語言中沒有指針的概念,但如果正確靈活地使用指針又確實(shí)可以大大提高程序的質(zhì)量。比如在c,c++中所謂的“動態(tài)數(shù)組”一般都由指針來實(shí)現(xiàn)。為了彌補(bǔ)這個缺點(diǎn),Java提供了豐富的類庫來方便編程者使用,vector類便是其中之一。事實(shí)上,靈活使用數(shù)組也可以完成向量類的功能,但向量類中提供大量的方法大大方便了用戶的使用。 

    創(chuàng)建了一個向量類的對象后,可以往其中隨意插入不同類的對象,即不需顧及類型也不需預(yù)先選定向量的容量,并可以方便地進(jìn)行查找。對于預(yù)先不知或者不愿預(yù)先定義數(shù)組大小,并且需要頻繁地進(jìn)行查找,插入,刪除工作的情況??梢钥紤]使用向量類。

向量類提供了三種構(gòu)造方法:

public vector() 
public vector(int initialcapacity,int capacityIncrement) 
public vector(int initialcapacity) 

使用第一種方法系統(tǒng)會自動對向量進(jìn)行管理,若使用后兩種方法。則系統(tǒng)將根據(jù)參數(shù),initialcapacity設(shè)定向量對象的容量(即向量對象可存儲數(shù)據(jù)的大小),當(dāng)真正存放的數(shù)據(jù)個數(shù)超過容量時。系統(tǒng)會擴(kuò)充向量對象存儲容量。

參數(shù)capacityincrement給定了每次擴(kuò)充的擴(kuò)充值。當(dāng)capacityincrement為0的時候,則沒次擴(kuò)充一倍,利用這個功能可以優(yōu)化存儲。在Vector類中提供了各種方法方便用戶的使用:

插入功能:

(1)public final synchronized void adddElement(Object obj) 

將obj插入向量的尾部。obj可以是任何類型的對象。對同一個向量對象,亦可以在其中插入不同類的對象。但插入的應(yīng)是對象而不是數(shù)值,所以插入數(shù)值時要注意將數(shù)組轉(zhuǎn)換成相應(yīng)的對象。

例如:要插入整數(shù)1時,不要直接調(diào)用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處的對象設(shè)置成obj,原來的對象將被覆蓋。

(3)public final synchronized void insertElement(Object obj,int index)

在index指定的位置插入obj,原來對象以及此后的對象依次往后順延。

刪除功能:

(1)public final synchronized void removeElement(Object obj)

從向量中刪除obj,若有多個存在,則從向量頭開始試,刪除找到的第一個與obj相同的向量成員。

(2)public final synchronized void removeAllElement();

刪除向量所有的對象

(3)public fianl synchronized void removeElementAt(int index)

刪除index所指的地方的對象

查詢搜索功能:

(1)public final int indexOf(Object obj)

從向量頭開始搜索obj,返回所遇到的第一個obj對應(yīng)的下標(biāo),若不存在此obj,返回-1.

(2)public final synchronized int indexOf(Object obj,int index)

從index所表示的下標(biāo)處開始搜索obj.

(3)public final int lastindexOf(Object obj)

從向量尾部開始逆向搜索obj.

(4)public final synchornized int lastIndex(Object obj,int index)

從index所表示的下標(biāo)處由尾至頭逆向搜索obj.

(5)public final synchornized firstElement()

獲取向量對象中的首個obj

(6)public final synchornized Object lastElement()

獲取向量對象的最后一個obj

例子:VectorApp.Java

import java.util.Vector;  
import java.lang.*;  
import java.util.Enumeration;  
public class VectorApp  
{  
   public static void main(String args[])  
   {  
     Vector v1 = new Vector();  
     Integer integer1= new Integer(1);  
     //加入為字符串對象  
     v1.addElement("one");  
     //加入的為integer的對象  
     v1.addElement(integer1);  
     v1.addElement(integer1);  
     v1.addElement("two");  
     v1.addElement(new Integer(2));  
     v1.addElement(integer1);  
     v1.addElement(integer1);  
     //轉(zhuǎn)為字符串并打印  
      System.out.println("The Vector v1 is:\n\t"+v1);  
     //向指定位置插入新對象  
     v1.insertElement("three",2);  
     v1.insertElement(new Float(3.9),3);  
     System.out.println("The Vector v1(used method  
     insertElementAt()is:\n\t)"+v1);  
     //將指定位置的對象設(shè)置為新的對象  
      //指定位置后的對象依次往后順延  
      v1.setElementAt("four",2);  
      System.out.println("The vector v1 cused method setElmentAt()is:\n\t"+v1);  
      v1.removeElement(integer1);  
      //從向量對象v1中刪除對象integer1  
      //由于存在多個integer1,所以從頭開始。  
       //找刪除找到的第一個integer1.  
      Enumeration enum = v1.elements();  
      System.out.println("The vector v1 (used method removeElememt()is");  
      while(enum.hasMoreElements())  
      System.out.println(enum.nextElement()+"");  
      System.out.println();  
      //使用枚舉類(Enumeration)的方法取得向量對象的每個元素。  
       System.out.println("The position of Object1(top-to-botton):"+v1.indexOf(integer1));  
      System.out.println("The position of Object1(tottom-to-top):"+v1.lastIndexOf(integer1));  
      //按不同的方向查找對象integer1所處的位置  
       v1.setSize(4);  
      System.out.println("The new Vector(resized the vector)is:"+v1);  
      //重新設(shè)置v1的大小,多余的元素被拋棄   
   }  
}  

運(yùn)行結(jié)果:

E:\java01>java VectorApp 
The vector v1 is:[one,1,1,two,2,1,1] 
The vector v1(used method insetElementAt()) is: 
[one,1,three,3.9,1,two,2,1,1] 
The vector v1(used method setElementAt()) is: 
[one,1,four,3.9,1,two,2,1,1] 
The vector v1(useed method removeElement()) is: 
one four 3.9 1 two 2 1 1 
The position of object1(top-to-botton):3 
The position of object1(botton-to-top):7 
The new Vector(resized the vector) is: 
[one,four,3.9,1] 

(1)類vector定義了方法

public final int size(); 

此方法用于獲取向量元素的個數(shù)。它們返回值是向量中實(shí)際存在的元素個數(shù),而非向量容量。可以調(diào)用方法capacity()來獲取容量值。

方法:

public final synchronized void setsize(int newsize); 

此方法用來定義向量的大小,若向量對象現(xiàn)有成員個數(shù)已經(jīng)超過了newsize的值,則超過部分的多余元素會丟失。

(2)程序中定義Enumeration類的一個對象Enumeration是java.util中的一個接口類,

在Enumeration中封裝了有關(guān)枚舉數(shù)據(jù)集合的方法。

在Enumeration提供了方法hasMoreElement()來判斷集合中是否還有其他元素和方法nextElement()來判斷集合中是否還有其他

元素和方法nextElement()來獲取下一個元素。利用這兩個方法,可以依次獲得集合中的元素。

Vector中提供方法:

public final synchronized Enumeration elements(); 


此方法將向量對象對應(yīng)到一個枚舉類型。java.util包中的其他類中也都有這類方法,以便于用戶獲取對應(yīng)的枚舉類型。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • MybatisPlus多表查詢及分頁查詢完整代碼

    MybatisPlus多表查詢及分頁查詢完整代碼

    這篇文章主要介紹了MybatisPlus多表查詢及分頁查詢完整代碼,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • MyBatisPlus分頁時排序的實(shí)現(xiàn)

    MyBatisPlus分頁時排序的實(shí)現(xiàn)

    本文主要介紹了MyBatisPlus分頁時排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 解決java.net.SocketTimeoutException: Read timed out的問題

    解決java.net.SocketTimeoutException: Read timed out的問題

    這篇文章主要介紹了解決java.net.SocketTimeoutException: Read timed out的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java強(qiáng)制類型轉(zhuǎn)換原理詳解(父類轉(zhuǎn)子類、子類轉(zhuǎn)父類)

    Java強(qiáng)制類型轉(zhuǎn)換原理詳解(父類轉(zhuǎn)子類、子類轉(zhuǎn)父類)

    這篇文章主要給大家介紹了關(guān)于Java強(qiáng)制類型轉(zhuǎn)換原理(父類轉(zhuǎn)子類、子類轉(zhuǎn)父類)的相關(guān)資料,所謂的強(qiáng)制類型轉(zhuǎn)換,其實(shí)是自動類型轉(zhuǎn)換的逆過程,在數(shù)據(jù)類型兼容的情況下,將容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型,需要的朋友可以參考下
    2023-12-12
  • Java線程池FutureTask實(shí)現(xiàn)原理詳解

    Java線程池FutureTask實(shí)現(xiàn)原理詳解

    這篇文章主要介紹了Java線程池FutureTask實(shí)現(xiàn)原理詳解,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java實(shí)用工具庫commons-lang3的使用

    Java實(shí)用工具庫commons-lang3的使用

    Apache?Commons?Lang?3是一個流行的Java實(shí)用工具庫,提供了對java.lang包的擴(kuò)展,包括字符串操作、正則表達(dá)式處理、數(shù)字操作、日期和時間操作、隨機(jī)字符串生成和對象操作等功能
    2025-03-03
  • Spring?Boot項目如何使用Maven打包并帶上依賴

    Spring?Boot項目如何使用Maven打包并帶上依賴

    在這篇博客中,介紹如何使用Maven將Spring?Boot項目及其依賴項打包成一個可執(zhí)行的jar文件。我們將使用Spring?Boot的spring-boot-maven-plugin插件來完成這個任務(wù),感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • SpringBoot監(jiān)控Tomcat活動線程數(shù)來判斷是否完成請求處理方式

    SpringBoot監(jiān)控Tomcat活動線程數(shù)來判斷是否完成請求處理方式

    這篇文章主要介紹了SpringBoot監(jiān)控Tomcat活動線程數(shù)來判斷是否完成請求處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • JAVA校驗(yàn)之@Valid和@Validated實(shí)踐指南

    JAVA校驗(yàn)之@Valid和@Validated實(shí)踐指南

    在Java開發(fā)中參數(shù)校驗(yàn)是保障程序健壯性的重要手段,@Valid和@Validated是兩個常用的校驗(yàn)注解,但它們在使用場景、驗(yàn)證方式和嵌套處理等方面存在顯著差異,這篇文章主要介紹了JAVA校驗(yàn)之@Valid和@Validated的相關(guān)資料,需要的朋友可以參考下
    2025-07-07
  • springsecurity記住我登錄時訪問無權(quán)限接口跳轉(zhuǎn)登錄界面的處理方案

    springsecurity記住我登錄時訪問無權(quán)限接口跳轉(zhuǎn)登錄界面的處理方案

    這篇文章主要介紹了springsecurity記住我登錄時訪問無權(quán)限接口跳轉(zhuǎn)登錄界面的處理方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-02-02

最新評論