Vector維克多提供了向量類(vector)以實現類似動態數組的功能。
首先,在Java中並沒有指針這樣的概念 ,但如果正確靈活地使用指針又確實可以大大提高程序的質量。比如在c,c++中所謂的“動態數組”一般都由指針來實現。為了彌補這個缺點,Java提供了豐富的類庫來方便編程者使用,vector類便是其中之一。事實上,靈活使用數組也可以完成向量類的功能,但向量類中提供大量的方法大大方便了用戶的使用。
創建了一個向量類的對象后,可以往其中隨意插入不同類的對象,即不需顧及類型也不需預先選定向量的容量,並可以方便地進行查找。對於預先不知或者不願預先定義數組大小,並且需要頻繁地進行查找,插入,刪除工作的情況。可以考慮使用向量類。
插入功能: (1)public final synchronized void adddElement(Object obj) 將obj插入向量的尾部。obj可以是任何類型的對象。對同一個向量對象,亦可以在其中插入不同類的對象。但插入的應是對象而不是數值,所以插入數值時要注意將數組轉換成相應的對象。 例如:要插入整數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 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 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
舉例:
VectorApp.Java [java] view plain copy print? 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); //轉為字符串並打印 System.out.println("The Vector v1 is:\n\t"+v1); //向指定位置插入新對象 v1.insertElementAt("three",2); v1.insertElementAt(new Float(3.9),3); System.out.println("The Vector v1(used method insertElementAt()is:\n\t)"+v1); //將指定位置的對象設置為新的對象 //指定位置后的對象依次往后順延 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); //重新設置v1的大小,多余的元素被拋棄 } } 運行結果: 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]