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

Java編程中的vector類用法學習筆記

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

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

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

Vector類支持4種構造方法。

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

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

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

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

Vector(Collection c)

使用第一種方法系統(tǒng)會自動對向量進行管理,若使用后兩種方法。則系統(tǒng)將根據(jù)參數(shù),initialcapacity設定向量對象的容量(即向量對象可存儲數(shù)據(jù)的大?。斦嬲娣诺臄?shù)據(jù)個數(shù)超過容量時。系統(tǒng)會擴充向量對象存儲容量。

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

插入功能:
(1)public final synchronized void adddElement(Object obj)
將obj插入向量的尾部。obj可以是任何類型的對象。對同一個向量對象,亦可以在其中插入不同類的對象。但插入的應是對象而不是數(shù)值,所以插入數(shù)值時要注意將數(shù)組轉換成相應的對象。
例如:要插入整數(shù)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,原來對象以及此后的對象依次往后順延。

刪除功能:
(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對應的下標,若不存在此obj,返回-1.
(2)public final synchronized int indexOf(Object obj,int index)
從index所表示的下標處開始搜索obj.
(3)public final int lastindexOf(Object obj)
從向量尾部開始逆向搜索obj.
(4)public final synchornized int lastIndex(Object obj,int index)
從index所表示的下標處由尾至頭逆向搜索obj.
(5)public final synchornized firstElement()
獲取向量對象中的首個obj
(6)public final synchornized Object 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();
  }
}

以上實例編譯運行結果如下:

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

相關文章

  • Spring Security 自定義資源服務器實踐過程

    Spring Security 自定義資源服務器實踐過程

    這篇文章主要介紹了Spring Security 自定義資源服務器實踐,我們通過自己搭建的授權服務器和資源服務器,完整體驗了OAuth2流程,需要的朋友可以參考下
    2022-08-08
  • springboot 中整合mybatis多數(shù)據(jù)源不使用JPA

    springboot 中整合mybatis多數(shù)據(jù)源不使用JPA

    這篇文章主要介紹了springboot 中整合mybatis多數(shù)據(jù)源不使用JPA,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot中的ExpiringMap代碼實例

    SpringBoot中的ExpiringMap代碼實例

    這篇文章主要介紹了SpringBoot中的ExpiringMap代碼實例,ExpiringMap是一個可以設置過期策略、可變條目過期、延遲條目加載和過期偵聽器的線程安全存儲容器,需要的朋友可以參考下
    2023-08-08
  • Java拷貝文件夾和刪除文件夾代碼實例

    Java拷貝文件夾和刪除文件夾代碼實例

    這篇文章主要介紹了Java拷貝文件夾和刪除文件夾代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java中的abstract和interface

    Java中的abstract和interface

    abstract和interface關鍵字在Java中隨處可見,它是Java三大特性封裝、繼承、多態(tài)特性的實現(xiàn)重要支柱之一。interface關鍵字用于定義接口抽象,其本質上是用于定義類型、定義類所具有的能力,下面來看看詳細內容,需要的朋友可以參考一下
    2021-11-11
  • Java的深拷貝與淺拷貝的幾種實現(xiàn)方式

    Java的深拷貝與淺拷貝的幾種實現(xiàn)方式

    這篇文章主要介紹了Java的深拷貝與淺拷貝的幾種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Java面試最容易被刷的重難點之鎖的使用策略

    Java面試最容易被刷的重難點之鎖的使用策略

    鎖像synchronized同步塊一樣,是一種線程同步機制,但比Java中的synchronized同步塊更復雜。因為鎖(以及其它更高級的線程同步機制)是由synchronized同步塊的方式實現(xiàn)的,所以我們還不能完全擺脫synchronized關鍵字
    2021-10-10
  • Java生成訂單號或唯一id的高并發(fā)方案(4種方法)

    Java生成訂單號或唯一id的高并發(fā)方案(4種方法)

    本文主要介紹了Java生成訂單號或唯一id的高并發(fā)方案,包括4種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • 淺談Java中常用數(shù)據(jù)結構的實現(xiàn)類 Collection和Map

    淺談Java中常用數(shù)據(jù)結構的實現(xiàn)類 Collection和Map

    下面小編就為大家?guī)硪黄獪\談Java中常用數(shù)據(jù)結構的實現(xiàn)類 Collection和Map。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • SpringBoot中EasyExcel實現(xiàn)execl導入導出

    SpringBoot中EasyExcel實現(xiàn)execl導入導出

    本文主要介紹了SpringBoot中EasyExcel實現(xiàn)execl導入導出,實現(xiàn)了如何準備環(huán)境、創(chuàng)建實體類、自定義轉換器以及編寫導入邏輯的步驟和示例代碼,感興趣的可以了解下
    2023-06-06

最新評論