最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java編程中的vector類用法學(xué)習(xí)筆記

 更新時(shí)間:2016年05月11日 16:23:41   作者:Listening_music  
Vector通常被用來實(shí)現(xiàn)動態(tài)數(shù)組,即可實(shí)現(xiàn)自動增長的對象數(shù)組,和C++一樣vector類同樣被Java內(nèi)置,下面就來看一下vector類的基本用法.

java.util.vector提供了向量類(vector)以實(shí)現(xiàn)類似動態(tài)數(shù)組的功能。在Java語言中沒有指針的概念,但如果正確靈活地使用指針又確實(shí)可以大大提高程序的質(zhì)量。比如在c,c++中所謂的“動態(tài)數(shù)組”一般都由指針來實(shí)現(xiàn)。為了彌補(bǔ)這個(gè)缺點(diǎn),Java提供了豐富的類庫來方便編程者使用,vector類便是其中之一。事實(shí)上,靈活使用數(shù)組也可以完成向量類的功能,但向量類中提供大量的方法大大方便了用戶的使用。
創(chuàng)建了一個(gè)向量類的對象后,可以往其中隨意插入不同類的對象,即不需顧及類型也不需預(yù)先選定向量的容量,并可以方便地進(jìn)行查找。對于預(yù)先不知或者不愿預(yù)先定義數(shù)組大小,并且需要頻繁地進(jìn)行查找,插入,刪除工作的情況??梢钥紤]使用向量類。
Vector類實(shí)現(xiàn)了一個(gè)動態(tài)數(shù)組。和ArrayList和相似,但是兩者是不同的:

  • Vector是同步訪問的。
  • Vector包含了許多傳統(tǒng)的方法,這些方法不屬于集合框架。
  • Vector主要用在事先不知道數(shù)組的大小,或者只是需要一個(gè)可以改變大小的數(shù)組的情況。

Vector類支持4種構(gòu)造方法。

1.第一種構(gòu)造方法創(chuàng)建一個(gè)默認(rèn)的向量,默認(rèn)大小為10:

Vector()
2.第二種構(gòu)造方法創(chuàng)建指定大小的向量。

Vector(int size)
3.第三種構(gòu)造方法創(chuàng)建指定大小的向量,并且增量用incr指定. 增量表示向量每次增加的元素?cái)?shù)目。

Vector(int size,int incr)
4.第四中構(gòu)造方法創(chuàng)建一個(gè)包含集合c元素的向量:

Vector(Collection c)

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

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

插入功能:
(1)public final synchronized void adddElement(Object obj)
將obj插入向量的尾部。obj可以是任何類型的對象。對同一個(gè)向量對象,亦可以在其中插入不同類的對象。但插入的應(yīng)是對象而不是數(shù)值,所以插入數(shù)值時(shí)要注意將數(shù)組轉(zhuǎn)換成相應(yīng)的對象。
例如:要插入整數(shù)1時(shí),不要直接調(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,若有多個(gè)存在,則從向量頭開始試,刪除找到的第一個(gè)與obj相同的向量成員。
(2)public final synchronized void removeAllElement();
刪除向量所有的對象
(3)public fianl synchronized void removeElementAt(int index)
刪除index所指的地方的對象

查詢搜索功能:
(1)public final int indexOf(Object obj)
從向量頭開始搜索obj,返回所遇到的第一個(gè)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()
獲取向量對象中的首個(gè)obj
(6)public final synchornized Object lastElement()
獲取向量對象的最后一個(gè)obj

實(shí)例
下面的程序說明這個(gè)集合所支持的幾種方法:

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();
  }
}

以上實(shí)例編譯運(yùn)行結(jié)果如下:

Initial size: 0
Initial capacity: 3
Capacity after four additions: 5
Current capacity: 5
Current capacity: 7
Current capacity: 9
First element: 1
Last element: 12
Vector contains 3.

Elements in vector:
1 2 3 4 5.45 6.08 7 9.4 10 11 12

相關(guān)文章

  • Springboot如何添加server.servlet.context-path相關(guān)使用

    Springboot如何添加server.servlet.context-path相關(guān)使用

    這篇文章主要介紹了Springboot如何添加server.servlet.context-path相關(guān)使用問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

    詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

    這篇文章主要介紹了詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java TimeoutException:服務(wù)調(diào)用超時(shí)異常的正確解決方案

    Java TimeoutException:服務(wù)調(diào)用超時(shí)異常的正確解決方案

    在現(xiàn)代軟件開發(fā)中,服務(wù)間通信是構(gòu)建分布式系統(tǒng)的基礎(chǔ),然而,網(wǎng)絡(luò)延遲、服務(wù)負(fù)載、資源競爭等因素都可能導(dǎo)致服務(wù)調(diào)用超時(shí),TimeoutException是Java中表示服務(wù)調(diào)用超時(shí)的常見異常之一,本文將探討TimeoutException的成因及解決方案,需要的朋友可以參考下
    2024-12-12
  • Springmvc如何實(shí)現(xiàn)向前臺傳遞數(shù)據(jù)

    Springmvc如何實(shí)現(xiàn)向前臺傳遞數(shù)據(jù)

    這篇文章主要介紹了Springmvc如何實(shí)現(xiàn)向前臺傳遞數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringCloud?Feign超詳細(xì)講解

    SpringCloud?Feign超詳細(xì)講解

    Feign是Netflix公司開發(fā)的一個(gè)聲明式的REST調(diào)用客戶端;?Ribbon負(fù)載均衡、?Hystrⅸ服務(wù)熔斷是我們Spring?Cloud中進(jìn)行微服務(wù)開發(fā)非?;A(chǔ)的組件,在使用的過程中我們也發(fā)現(xiàn)它們一般都是同時(shí)出現(xiàn)的,而且配置也都非常相似
    2022-10-10
  • java必懂的冷知識點(diǎn)之Base64加密與解密

    java必懂的冷知識點(diǎn)之Base64加密與解密

    這篇文章主要介紹了java必懂的冷知識點(diǎn)之Base64加密與解密的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Java實(shí)現(xiàn)循環(huán)體的過濾器的方法

    Java實(shí)現(xiàn)循環(huán)體的過濾器的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)循環(huán)體的過濾器的方法,需要的朋友可以參考下
    2014-02-02
  • VsCode配置java環(huán)境的詳細(xì)圖文教程

    VsCode配置java環(huán)境的詳細(xì)圖文教程

    vscode是一個(gè)免費(fèi)的代碼編輯器,支持多種主題,應(yīng)用起來簡單方便,下面這篇文章主要給大家介紹了關(guān)于VsCode配置java環(huán)境的詳細(xì)圖文教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Java對象在JVM中的生命周期詳解

    Java對象在JVM中的生命周期詳解

    這篇文章主要介紹了Java對象在JVM中的生命周期詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • 分析java中全面的單例模式多種實(shí)現(xiàn)方式

    分析java中全面的單例模式多種實(shí)現(xiàn)方式

    單例模式是一種常用的軟件設(shè)計(jì)模式,單例對象的類只能允許一個(gè)實(shí)例存在。許多時(shí)候整個(gè)系統(tǒng)只需要擁有一個(gè)的全局對象,有利于協(xié)調(diào)系統(tǒng)整體的行為。比如在某個(gè)服務(wù)器程序中,該服務(wù)器的配置信息存放在一個(gè)文件中。本文將介紹它的思想和多種實(shí)現(xiàn)方式
    2021-06-06

最新評論

新平| 望谟县| 宽城| 富宁县| 甘泉县| 绿春县| 天柱县| 双辽市| 永修县| 察隅县| 察雅县| 西华县| 谷城县| 巴中市| 株洲市| 随州市| 崇阳县| 和龙市| 新昌县| 运城市| 贵德县| 葵青区| 三台县| 葫芦岛市| 雷波县| 富阳市| 高邑县| 册亨县| 泰顺县| 山丹县| 鹤峰县| 黄龙县| 靖江市| 改则县| 金溪县| 万荣县| 东海县| 湘西| 会同县| 固阳县| 永寿县|