JAVA學(xué)習(xí)基礎(chǔ)參考模板_第1頁(yè)
JAVA學(xué)習(xí)基礎(chǔ)參考模板_第2頁(yè)
JAVA學(xué)習(xí)基礎(chǔ)參考模板_第3頁(yè)
JAVA學(xué)習(xí)基礎(chǔ)參考模板_第4頁(yè)
JAVA學(xué)習(xí)基礎(chǔ)參考模板_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、vector 抽象容器類(lèi)型之一(還有l(wèi)ist和deque等),與其他幾中容器類(lèi)型不同的是它高效支持隨機(jī)訪問(wèn)其中的元素。 使用vector,首先必須調(diào)用頭文件(#include <vector>) 它的聲明和初始化是這樣的 vector <類(lèi)型名> 變量名 vector <int> vi = ( 10 , 1 ) /初始化為10個(gè)元素的vector,每個(gè)元素都為1使用迭代器標(biāo)識(shí): vector <int> test;text.begin()   text.end()。例如:for (vector< type > :i

2、terator it = text.begin(); it != text.end(); +it)       cout << *it << ' 'push_back()的用法是將元素插入vector容器的最尾部 舉個(gè)例子 vector <int> vi; int a4 = 0, 1, 2, 3; for ( int i = 0; i<4; +i ) vi.push_back(ai);此時(shí)vi就是0 1 2 3 如果改成 vi.push_front( ai ); vi2 / 1

3、8就是 3 2 1 0參考資料:C+ Primer。Vector是java.util包的類(lèi),他的功能是實(shí)現(xiàn)了一個(gè)動(dòng)態(tài)增長(zhǎng)的數(shù)組,像其他數(shù)組一樣,此向量數(shù)組可以為每個(gè)包含的元素分配一下整數(shù)索引號(hào),但是,向量不同于數(shù)組,它的長(zhǎng)度可以在創(chuàng)建以后根據(jù)實(shí)際包含的元素個(gè)數(shù)增加或減少。 向量對(duì)象是通過(guò)capacity(容量)和capacityIncrement(增長(zhǎng)幅度)兩個(gè)因素來(lái)實(shí)現(xiàn)存儲(chǔ)優(yōu)化管理。容量因素的值總是大于向量的長(zhǎng)度,因?yàn)楫?dāng)元素被添加到向量中,向量存儲(chǔ)長(zhǎng)度的增加是以增長(zhǎng)幅度因素指定的值來(lái)增加的,應(yīng)用程序可以在插入大量元素前,先根據(jù)需要增加適量的向量容量,這樣,可以避免增加多余的存儲(chǔ)空間。 以上是

4、參考手冊(cè)里對(duì)Vector的介紹,下面是我學(xué)習(xí)中的一些心得: Vector有三個(gè)構(gòu)造函數(shù) public Vector(int initialCapacity,int capacityIncrement)      public Vector(int initialCapacity)        public Vector()      這三個(gè)構(gòu)造函數(shù)的差別僅僅在于對(duì)向量的初始容量和增長(zhǎng)幅度的定義上,向量的增長(zhǎng)過(guò)程是當(dāng)當(dāng)前容易不能滿(mǎn)足添加的元素時(shí),就按照構(gòu)造

5、時(shí)給定的增長(zhǎng)幅度來(lái)增加,如果未定義增長(zhǎng)幅度,則每次增加的時(shí)候會(huì)成倍增加。舉個(gè)例。 Vector t=new Vetor(4,0);      for(int i=0;i<20;i+)      t.addElement(new String("ft");     那么實(shí)際運(yùn)行后,t的容量是4*2*2*2=32, 如果改寫(xiě)成      Vector t=new Vetor(4,3);    &

6、#160; for(int i=0;i<20;i+)      t.addElement(new String("ft");     那么實(shí)際運(yùn)行后,t的容量是4+3+3+3+3+3+3=22, 但如果寫(xiě)成      Vector t=new Vetor();      for(int i=0;i<20;i+)      t.addElement(new String(&qu

7、ot;ft");      則運(yùn)行后t的容量是,我測(cè)試過(guò),好像用默認(rèn)的構(gòu)造函數(shù),初始容量是,以后每次翻倍,這樣容易造成空間的浪費(fèi),因?yàn)榻ㄗh不采用這種構(gòu)造函數(shù)。 Vector類(lèi)有很多方法,其實(shí)像常用的有addElement(),removeElementAt(int index),insertElementAt(Object obj,int index)等方法,這些方法從字面上就很容易理解,其實(shí)與數(shù)組的操作差不多。 Vector類(lèi)的要點(diǎn)就在于對(duì)存儲(chǔ)空間的操作,因?yàn)橹饕侵v一下下面的幾個(gè)方法: public void trimToSize() 該方

8、法用于刪除掉向量中大于向量當(dāng)前長(zhǎng)度的多余容量,應(yīng)用程序通過(guò)使用此方法可以使向量容量剛好滿(mǎn)足元素存儲(chǔ)的最小需要。 public void ensureCapacity(int minCapacity)      該方法用于增加向量的容量,保證增加后的向量容量不小于給定的參數(shù)。對(duì)這個(gè)方法我作過(guò)測(cè)試,使用這個(gè)方法后向量容量增加的幅度與構(gòu)造Vector類(lèi)時(shí)的構(gòu)造方法有關(guān),如果構(gòu)造函數(shù)時(shí)給定的向量增加幅度為,那么使用這個(gè)方法后容量會(huì)成倍增長(zhǎng),如果構(gòu)造函數(shù)時(shí)給定了不為的向量增加幅度,那么使用這個(gè)方法后容量會(huì)以給定的幅度為單位增長(zhǎng)。 public void setSi

9、ze(int newSize)     該方法用于設(shè)置向量的長(zhǎng)度,如果新設(shè)置的長(zhǎng)度大于向量的當(dāng)前長(zhǎng)度,新增的內(nèi)容為空的元素被添加到當(dāng)前向量的尾部。如果新設(shè)置的長(zhǎng)度小于向量當(dāng)前的長(zhǎng)度,索引值大于新設(shè)置長(zhǎng)度的元素將被截取。Vector實(shí)際上就是一種特殊的數(shù)組,由于他的通用性,他的元素都是Object類(lèi),所以對(duì)Vector的元素增加或者讀取都要進(jìn)行類(lèi)型轉(zhuǎn)換。如:Vector t=new Vector();      t.addElement(new String("vector");   &

10、#160;  system.out.println(String)t.elementAt(0);    t.addElement(Image)(pic);     g.drawImage(Image)(t.elementAt(1),0,0,0);java.util.vector中的vector的詳細(xì)用法 ArrayList會(huì)比Vector快,他是非同步的,如果設(shè)計(jì)涉及到多線(xiàn)程,還是用Vector比較好一些import java.util.*;/* 演示Vector的使用。包括Vector的創(chuàng)建、向Vector中添加元素、從V

11、ector中刪除元素、* 統(tǒng)計(jì)Vector中元素的個(gè)數(shù)和遍歷Vector中的元素。*/public class VectorDemopublic static void main(String args)/Vector的創(chuàng)建/使用Vector的構(gòu)造方法進(jìn)行創(chuàng)建 Vector v = new Vector(4);/向Vector中添加元素/使用add方法直接添加元素v.add("Test0");v.add("Test1");v.add("Test0");v.add("Test2");v.add("Test2

12、");/從Vector中刪除元素v.remove("Test0"); /刪除指定內(nèi)容的元素v.remove(0);       /按照索引號(hào)刪除元素/獲得Vector中已有元素的個(gè)數(shù)int size = v.size();System.out.println("size:" + size);/遍歷Vector中的元素for(int i = 0;i < v.size();i+)   System.out.println(v.get(i);-Vector 類(lèi)提供了

13、實(shí)現(xiàn)可增長(zhǎng)數(shù)組的功能,隨著更多元素加入其中,數(shù)組變的更大。在刪除一些元素之后,數(shù)組變小。Vector 有三個(gè)構(gòu)造函數(shù),public Vector(int initialCapacity,int capacityIncrement)public Vector(int initialCapacity)public Vector()Vector 運(yùn)行時(shí)創(chuàng)建一個(gè)初始的存儲(chǔ)容量initialCapacity,存儲(chǔ)容量是以capacityIncrement 變量定義的增量增長(zhǎng)。初始的存儲(chǔ)容量和capacityIncrement 可以在Vector 的構(gòu)造函數(shù)中定義。第二個(gè)構(gòu)造函數(shù)只創(chuàng)建初始存儲(chǔ)容量。第三個(gè)

14、構(gòu)造函數(shù)既不指定初始的存儲(chǔ)容量也不指定capacityIncrement。Vector 類(lèi)提供的訪問(wèn)方法支持類(lèi)似數(shù)組運(yùn)算和與Vector 大小相關(guān)的運(yùn)算。類(lèi)似數(shù)組的運(yùn)算允許向量中增加,刪除和插入元素。它們也允許測(cè)試矢量的內(nèi)容和檢索指定的元素,與大小相關(guān)的運(yùn)算允許判定字節(jié)大小和矢量中元素不數(shù)目?,F(xiàn)針對(duì)經(jīng)常用到的對(duì)向量增,刪,插功能舉例描述:addElement(Object obj) 把組件加到向量尾部,同時(shí)大小加1,向量容量比以前大1 insertElementAt(Object obj, int index) 把組件加到所定索引處,此后的內(nèi)容向后移動(dòng)1 個(gè)單位setElementAt(Obj

15、ect obj, int index) 把組件加到所定索引處,此處的內(nèi)容被代替。removeElement(Object obj) 把向量中含有本組件內(nèi)容移走。removeAllElements() 把向量中所有組件移走,向量大小為0。例如: import java.lang.System; import java.util.Vector; import java.util.Emumeration; public class Avector public static void main(String args)0. Vector v=new Vector(); 1. v.addElement

16、("one"); 2. addElement("two");3. v.addElement("three"); 4. v.insertElementAt("zero",0);5. v.insertElementAt("oop",3);6. v.setElementAt("three",3);7. v.setElementAt("four",4);8. v.removeAllElements();Vector中的變化情況:1. one 2. one 3. o

17、ne 4. zero 5.zero 6. zero7. zero     8.    two       two           one     one        one    onethree  &#

18、160;  two     two         two twothree    oop         threethreethree        threefour另外,Vector 在參數(shù)傳遞中發(fā)揮著舉足輕重的作用。在Applet 中有一塊畫(huà)布(Canvas) 和一個(gè)(Panel

19、), 而Panel 中放著用戶(hù)要輸入的信息,根據(jù)這些信息把參數(shù)傳遞到canvas 中,這時(shí)在Java 中用一個(gè)接口(Interface), 而在接口中需用一個(gè)Vector 去傳遞這些參數(shù)。另外,在一個(gè)類(lèi)向另一個(gè)類(lèi)參數(shù)傳遞就可以用這種方法。例如:import java.util.Vectorinterface codeselectVector codeselect=new Vector(); 顯示數(shù)學(xué)信息Vector(0)存入學(xué)生編號(hào)Vector(1)存入學(xué)科在Panel 中當(dāng)用戶(hù)在TextField 和Choice 中選擇自己所要求的內(nèi)容,程序中通過(guò)事件響應(yīng)把值傳到向量Vector 中。假若在Panel 類(lèi)中:public voidcodepanel extends Panelpublic void init() *.TextFields=new TextField();Choice

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論