日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Vector:动态数组的使用和说明

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vector:动态数组的使用和说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘自百度百科:


1.?Vector 類在 java 中可以實現自動增長的對象數組;

創建了一個向量類的對象后,可以往其中隨意地插入不同的類的對象,既不需顧及類型也不需預先選定向量的容量,并可方便地進行查找。對于預先不知或不愿預先定義數組大小,并需頻繁進行查找、插入和刪除工作的情況,可以考慮使用向量類。向量類提供了三種構造方法: public Vector() public Vector(int initialcapacity,int capacityIncrement) public Vector(int initialcapacity) 使用第一種方法,系統會自動對向量對象進行管理。若使用后兩種方法,則系統將根據參數initialcapacity設定向量對象的容量(即向量對象可存儲數據的大小),當真正存放的數據個數超過容量時,系統會擴充向量對象的存儲容量。 參數capacityIncrement給定了每次擴充的擴充值。當capacityIncrement為0時,則每次擴充一倍。利用這個功能可以優化存儲。 2. Java中,數組對象一旦創建后,其元素的個數 不能被修改。而Java.util包中的Vector類(向量)提供類似于數組的能力,且能夠動態地調整自身的大小。Vector類似于一個數組,但與數組相比在使用上有兩個優點: ① 使用的時候無須聲明上限,隨著元素的增加,Vector的長度會自動增加; ② Vector類提供額外的方法來增加、刪除元素,比數組操作高效。[1]

插入功能

(1)public final synchronized void addElement(Object obj) 將obj插入向量的尾部。obj可以是任何類的對象。對同一個向量對象,可在其中插入不同類的對象。但插入的應是對象而不是數值,所以插入數值時要注意將數值轉換成相應的對象。 例 要插入一個整數1時,不要直接調用v1.addElement(1),正確的方法為:
1 2 3 Vectorv1=new?Vector(); Integerinteger1=new?Integer(1); v1.addElement(integer1);
(2)public final synchronized void setElementAt(object obj,int index) 將index處的對象設成obj,原來的對象將被覆蓋。 (3)public final synchronized void insertElementAt(Object obj,int index) 在index指定的位置插入obj,原來對象以及此后的對象依次往后順延。

刪除功能

(1)public final synchronized void removeElement(Object obj) 從向量中刪除obj。若有多個存在,則從向量頭開始試,刪除找到的第一個與obj相同的向量成員。 (2)public final synchronized void removeAllElement() 刪除向量中所有的對象。 (3)public final synchronized void removeElementlAt(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 synchronized int lastIndexOf(Object obj,int index) 從index所表示的下標處由尾至頭逆向搜索obj。 (5)public final synchronized Object firstElement() 獲取向量對象中的首個obj。 (6)public final synchronized Object lastElement() 獲取向量對象中的最后一個obj。

實例

了解了向量的最基本的方法后,我們來看一下例子VectorApp.java。 例 VectorApp.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 importjava.util.Vector; importjava.lang.*; //這一句不應該要,但原文如此 importjava.util.Enumeration; public?class?VectorApp { ????public?static?void?main(String[]args) ????{ ????????Vector<Integer>?v1=new?Vector<Integer>();//jdk1.5以后增加了對的支持! ????????Integer?integer1=new?Integer(1); ????????/** ????????*因為Vector<Integer>已經指定為Integer類型 ????????*當v1.addElement("one")時會報錯,類型不符 ????????*ThemethodaddElement(Integer)inthetypeVector<Integer>isnotapplicablefor ????????*thearguments(String) ????????*/ ????????//加入的為字符串對象 ????????v1.addElement("one"); ????????v1.addElement("two"); ????????//加入的為Integer的對象 ????????v1.addElement(integer1); ????????v1.addElement(newInteger(2)); ????????System.out.println("Thevectorv1is:\n\t"+v1); ????????//此處的輸出結果為:Thevectorv1is:[1,2] ????????/** ????????*ThemethodinsertElementAt(Integer,int)inthetypeVector<Integer>isnotapplicablefor ????????*thearguments(String,int) ????????*insertElementAt()是指:Insertsthespecifiedobjectasacomponentinthisvectorat ????????*thespecifiedindex. ????????*/ ????????//將v1轉換成字符串并打印 ????????v1.insertElementAt("three",2); ????????v1.insertElementAt(newFloat(3.9),3); ????????System.out.println("Thevectorv1(usedmethodinsertElementAt())is:\n\t"+v1); ????????//以上運行,請改Vector<Integer>為Vector<Float> ????????/** ????????*setElementAt(Eobj,intindex)的用法 ????????*Setsthecomponentatthespecifiedindexofthisvectortobethespecifiedobject. ????????*Thepreviouscomponentatthatpositionisdiscarded.?????????????? ????????*Theindexmustbeavaluegreaterthanorequalto0andlessthanthecurrentsizeofthevector. ????????*/ ????????//將指定位置的對象設置為新的對象 ????????v1.setElementAt(2,1); ????????System.out.println("Thevectorv1(usedmethodsetElementAt())is:\n\t"+v1); ????????//從向量對象v1中刪除對象integer1由于存在多個integer1所以從頭開始找,刪除找到的第一個integer1 ????????v1.removeElement(integer1); ????????//使用枚舉類(Enumeration)的方法來獲取向量對象的每個元素 ????????Enumerationenum=v1.elements(); ????????System.out.print("Thevectorv1(usedmethodremoveElement())is:"); ????????while(enum.hasMoreElements()) ????????System.out.print(enum.nextElement()+""); ????????System.out.println(); ????????System.out.println("Thepositionofobject1(top-to-bottom):" +v1.indexOf(integer1)); ????????System.out.println("Thepositionofobject1(tottom-to-top):" +v1.lastIndexOf(integer1)); ????????//按不同的方向查找對象integer1所處的位置 ????????v1.setSize(4); ????????System.out.println("Thenewvector(resizedthevector)is:"+v1); ????????//重新設置v1的大小,多余的元素被行棄 ????} }
運行結果: E:\java01>java VectorApp The vector v1 is: [one,1,1,two,2,1,1] The vector v1(used method insertElementAt())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(used method removeElement())is: one four 3.9 1 two 2 1 1 The position of object 1(top-to-bottom):3 The position of object 1(tottom-to-top):7 The new vector(resized the vector)is: [one,four,3.9,1] E:\java01> 從例1中運行的結果中可以清楚地了解上面各種方法的作用,另外還有幾點需解釋。 (1)類Vector定義了方法 public final int size() 此方法用于獲取向量元素的個數。它的返回值是向量中實際存在的元素個數,而非向量容量。可以調用方法capactly()來獲取容量值。 方法: public final synchronized void setsize(int newsize) 此方法用來定義向量大小。若向量對象現有成員個數已超過了newsize的值,則超過部分的多余元素會丟失。 (2)程序中定義了Enumeration類的一個對象 Enumeration是java.util中的一個接口類,在Enumeration中封裝了有關枚舉數據集合的方法。 在Enumeration中提供了方法hasMoreElement()來判斷集合中是否還有其它元素和方法nextElement()來獲取下一個元素。利用這兩個方法可以依次獲得集合中元素。 Vector中提供方法: public final synchronized Enumeration elements() 此方法將向量對象對應到一個枚舉類型。java.util包中的其它類中也大都有這類方法,以便于用戶獲取對應的枚舉類型。Java中,數組對象一旦創建后,其元素的個數 不能被修改。而Java.util包中的Vector類(向量)提供類似于數組的能力,且能夠動態地調整自身的大小。Vector類似于一個數組,但與數組相比在使用上有兩個優點: ① 使用的時候無須聲明上限,隨著元素的增加,Vector的長度會自動增加; ② Vector類提供額外的方法來增加、刪除元素,比數組操作高效。[1]

插入功能

(1)public final synchronized void addElement(Object obj) 將obj插入向量的尾部。obj可以是任何類的對象。對同一個向量對象,可在其中插入不同類的對象。但插入的應是對象而不是數值,所以插入數值時要注意將數值轉換成相應的對象。 例 要插入一個整數1時,不要直接調用v1.addElement(1),正確的方法為:
1 2 3 Vectorv1=new?Vector(); Integerinteger1=new?Integer(1); v1.addElement(integer1);
(2)public final synchronized void setElementAt(object obj,int index) 將index處的對象設成obj,原來的對象將被覆蓋。 (3)public final synchronized void insertElementAt(Object obj,int index) 在index指定的位置插入obj,原來對象以及此后的對象依次往后順延。

刪除功能

(1)public final synchronized void removeElement(Object obj) 從向量中刪除obj。若有多個存在,則從向量頭開始試,刪除找到的第一個與obj相同的向量成員。 (2)public final synchronized void removeAllElement() 刪除向量中所有的對象。 (3)public final synchronized void removeElementlAt(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 synchronized int lastIndexOf(Object obj,int index) 從index所表示的下標處由尾至頭逆向搜索obj。 (5)public final synchronized Object firstElement() 獲取向量對象中的首個obj。 (6)public final synchronized Object lastElement() 獲取向量對象中的最后一個obj。

實例

了解了向量的最基本的方法后,我們來看一下例子VectorApp.java。 例 VectorApp.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 importjava.util.Vector; importjava.lang.*; //這一句不應該要,但原文如此 importjava.util.Enumeration; public?class?VectorApp { ????public?static?void?main(String[]args) ????{ ????????Vector<Integer>?v1=new?Vector<Integer>();//jdk1.5以后增加了對的支持! ????????Integer?integer1=new?Integer(1); ????????/** ????????*因為Vector<Integer>已經指定為Integer類型 ????????*當v1.addElement("one")時會報錯,類型不符 ????????*ThemethodaddElement(Integer)inthetypeVector<Integer>isnotapplicablefor ????????*thearguments(String) ????????*/ ????????//加入的為字符串對象 ????????v1.addElement("one"); ????????v1.addElement("two"); ????????//加入的為Integer的對象 ????????v1.addElement(integer1); ????????v1.addElement(newInteger(2)); ????????System.out.println("Thevectorv1is:\n\t"+v1); ????????//此處的輸出結果為:Thevectorv1is:[1,2] ????????/** ????????*ThemethodinsertElementAt(Integer,int)inthetypeVector<Integer>isnotapplicablefor ????????*thearguments(String,int) ????????*insertElementAt()是指:Insertsthespecifiedobjectasacomponentinthisvectorat ????????*thespecifiedindex. ????????*/ ????????//將v1轉換成字符串并打印 ????????v1.insertElementAt("three",2); ????????v1.insertElementAt(newFloat(3.9),3); ????????System.out.println("Thevectorv1(usedmethodinsertElementAt())is:\n\t"+v1); ????????//以上運行,請改Vector<Integer>為Vector<Float> ????????/** ????????*setElementAt(Eobj,intindex)的用法 ????????*Setsthecomponentatthespecifiedindexofthisvectortobethespecifiedobject. ????????*Thepreviouscomponentatthatpositionisdiscarded.?????????????? ????????*Theindexmustbeavaluegreaterthanorequalto0andlessthanthecurrentsizeofthevector. ????????*/ ????????//將指定位置的對象設置為新的對象 ????????v1.setElementAt(2,1); ????????System.out.println("Thevectorv1(usedmethodsetElementAt())is:\n\t"+v1); ????????//從向量對象v1中刪除對象integer1由于存在多個integer1所以從頭開始找,刪除找到的第一個integer1 ????????v1.removeElement(integer1); ????????//使用枚舉類(Enumeration)的方法來獲取向量對象的每個元素 ????????Enumerationenum=v1.elements(); ????????System.out.print("Thevectorv1(usedmethodremoveElement())is:"); ????????while(enum.hasMoreElements()) ????????System.out.print(enum.nextElement()+""); ????????System.out.println(); ????????System.out.println("Thepositionofobject1(top-to-bottom):" +v1.indexOf(integer1)); ????????System.out.println("Thepositionofobject1(tottom-to-top):" +v1.lastIndexOf(integer1)); ????????//按不同的方向查找對象integer1所處的位置 ????????v1.setSize(4); ????????System.out.println("Thenewvector(resizedthevector)is:"+v1); ????????//重新設置v1的大小,多余的元素被行棄 ????} }
運行結果: E:\java01>java VectorApp The vector v1 is: [one,1,1,two,2,1,1] The vector v1(used method insertElementAt())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(used method removeElement())is: one four 3.9 1 two 2 1 1 The position of object 1(top-to-bottom):3 The position of object 1(tottom-to-top):7 The new vector(resized the vector)is: [one,four,3.9,1] E:\java01> 從例1中運行的結果中可以清楚地了解上面各種方法的作用,另外還有幾點需解釋。 (1)類Vector定義了方法 public final int size() 此方法用于獲取向量元素的個數。它的返回值是向量中實際存在的元素個數,而非向量容量。可以調用方法capactly()來獲取容量值。 方法: public final synchronized void setsize(int newsize) 此方法用來定義向量大小。若向量對象現有成員個數已超過了newsize的值,則超過部分的多余元素會丟失。 (2)程序中定義了Enumeration類的一個對象 Enumeration是java.util中的一個接口類,在Enumeration中封裝了有關枚舉數據集合的方法。 在Enumeration中提供了方法hasMoreElement()來判斷集合中是否還有其它元素和方法nextElement()來獲取下一個元素。利用這兩個方法可以依次獲得集合中元素。 Vector中提供方法: public final synchronized Enumeration elements() 此方法將向量對象對應到一個枚舉類型。java.util包中的其它類中也大都有這類方法,以便于用戶獲取對應的枚舉類型。 3. vector 是同一種類型的對象的集合,每個對象都有一個對應的整數索引值[2]? 和 string 對象一樣,標準庫將負責管理與存儲元素相關的內存。我們把 vector稱為容器,是因為它可以包含其他對象,能夠存放任意類型的動態數組,增加和壓縮數據。一個容器中的所有對象都必須是同一種類型的[2]。 vector 是一個類模板(class template)。使用模板可以編寫一個類定義或函數定義,而用于多個不同的數據類型。因此,我們可以定義保存 string 對象的 vector,或保存 int 值的 vector,又或是保存自定義的類類型對象(如Sales_items 對象)的 vector。vector 不是一種數據類型,而只是一個類模板,可用來定義任意多種數據類型。vector 類型的每一種都指定了其保存元素的類型

總結

以上是生活随笔為你收集整理的Vector:动态数组的使用和说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av人人干 | 疯狂做爰高潮videossex | 99久久久无码国产精品性色戒 | 成人在线观看免费 | 亚洲人成无码网站久久99热国产 | 欧美成人久久久免费播放 | 免费看欧美黑人毛片 | 久久久久久网址 | 亚洲综合图片一区 | 日韩精品黄 | 波多野结衣人妻 | 亚洲精品一区二三区不卡 | 午夜激情视频网 | 亚洲欧洲免费无码 | 亚洲成人看片 | 中文字幕11页中文字幕11页 | 欧美精品在线视频观看 | 久久久精品区 | 香蕉国产精品视频 | 亚洲av中文无码乱人伦在线观看 | 加勒比不卡视频 | 一级片日韩 | 台湾佬美性中文娱乐 | 一区二区免费在线观看 | 日本另类视频 | 亚洲爱爱av| 日日精 | 91官网视频| 午夜一区在线 | 日韩欧美三级 | 九月婷婷| 成人做爰免费视频免费看 | 日韩欧美国产成人精品免费 | 国产精品专区在线观看 | 精品国产色 | 日韩福利视频在线观看 | 欧美亚洲一区二区在线观看 | 波多野吉衣一二三区乱码 | 日本69视频 | 国产网友自拍 | 99热都是精品 | 中文在线不卡视频 | 夜夜骑夜夜 | 老汉色老汉首页av亚洲 | 久久艹这里只有精品 | 黄色一级视频免费看 | av撸撸在线 | 99黄色网| 一本久久综合亚洲鲁鲁五月天 | 蜜臀av性久久久久av蜜臀妖精 | 中文字幕11页中文字幕11页 | 麻豆人妻少妇精品无码专区 | 91传媒理伦片在线观看 | 国产精品vip | 成人免费视频国产免费 | 欧美久久一区二区三区 | 久久亚洲日本 | 国产美女久久久久久 | 91成人短视频 | 国产精品欧美综合 | 91色爱| 久久国产成人精品av | 娇妻高潮浓精白浆xxⅹ | 亚洲视频图片小说 | 国产精品成人久久久久久久 | 午夜精品视频在线 | 中文字幕av免费在线观看 | 欧美 日韩 视频 | 国产成年人 | 中文字幕五码 | 久一视频在线观看 | 韩国日本欧美一区 | 免费在线看视频 | 亚洲va国产va天堂va久久 | 精品国产18久久久久久二百 | 外国黄色录像 | 欧美一区日韩一区 | 日本黄色大片在线观看 | 看黄色一级片 | 久久偷看各类wc女厕嘘嘘偷窃 | 一本一道波多野结衣一区二区 | 国产精品一区二区性色av | 黄色免费在线观看视频 | 91亚洲国产| 视频二区 | 91网页在线观看 | 91av国产在线 | 色01看片网 | 久久婷婷婷 | 国语对白做受69 | 麻豆精品国产传媒mv男同 | 91精品人妻互换一区二区 | 欧美一区二区三区黄片 | 久久婷婷成人综合色 | 少妇一级片| 日b免费视频 | 色婷婷免费视频 | 欧美香蕉在线 | 国产精品黄在线观看 |