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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中vector的用法

發布時間:2025/3/16 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中vector的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Vector的使用

vector類底層數組結構的,它包含可以使用整數索引進行訪問的組件。不過,vector的大小可以根據需要增大或縮小,以適應創建vector后進行添加或移除項的操作,因此不需要考慮元素是否越界或者會不會浪費內存的問題。

由vector的iterator和listIterator方法所返回的迭代器是快速失敗的:也即是它不能并發執行操作。如果在迭代器創建后的任意時間從結構上修改了向量(通過迭代器自身的remove或add方法之外的任何其他方式),則迭代器將拋出ConcurrentModificationException。因此,面對并發的修改,迭代器很快就完全失敗,而不是冒著將來不確定的時間任意發生不確定行為的風險。

vector的elements()方法返回的Enumeration不是快速失敗的。

通過代碼說明這個問題:

package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");Enumeration en=v.elements();while(en.hasMoreElements()){Object object=en.nextElement();if(object.equals("abc3")){v.addElement("abc5"); // 不會出現異常}System.out.println(object);}Iterator it=v.iterator();while(it.hasNext()){Object obj=it.next();if(obj.equals("abc3")){v.addElement("abc5");// 會出現異常// 面對并發的修改,迭代器很快就完全失敗!}System.out.println(obj);}} }


Vector的四種構造方法:

1、Vector(); ? ?構造一個空向量,使其內部數據數組的大小為10,其標準容量增量為零。 ? ??Vector vec=new Vector();

2、Vector(Collection c); ? ?構造一個包含指定collection中的元素的向量,這些元素按其collection的迭代器返回元素的順序排列。 ?Vector v=new Vector(vec);

3、Vector(int initialCapacity); ? 使用指定的初始容量和等于零的容量增量構造一個空向量。

4、Vector(int initialCapacity,int capacityIncrement); ? 使用指定的初始容量和容量增量構造一個空的向量。
Vector類中的方法:

1、boolean add(E e); ? ? ? ? ? ? ?將指定的元素添加到此向量的末尾。

2、void addElement(E obj); ? 將指定的組件添加到此向量的末尾,將其大小增加1。

3、void add(int indext,E e); ? ? 在此向量的指定位置插入指定的元素。

4、boolean addAll(Collection c); ? 將指定Collection中的所有元素添加到此向量的末尾,按照指定collection的迭代器所返回的順序添加這些元素。

5、boolean addAll(int index,Collection c); ? 在指定位置將指定Collection中的所有元素插入到此向量中。

6、int ?capacity(); ? ? ? 返回此向量的當前容量。

7、Object clone(); ? ? ?返回向量的一個副本。

8、boolean contains(Object o); ?如果此向量包含指定的元素,怎返回true。

9、boolean containsAll(Collection c); ? 如果此向量包含Collection中的所有元素,則返回true。

10、void copyInto(Object[] anArray); ? ? ? 將此向量的組件復制到指定的數組中。

11、E elementAt(int index); ? ? ? ? 返回指定索引處的組件。

12、Enumeration<E> elements(); ?返回此向量的組件的枚舉。

13、void ensureCapacity(int minCapacity); ? ?增加此向量的容量(如有必要),以確保其至少能夠保證最小容量參數指定的組件數。

14、boolean equals(Object o); ? ? ? 比較指定對象與此向量的相等性。

package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");Vector vec=new Vector();vec.add("abc1");vec.add("abc2");vec.add("abc3");vec.add("abc4");System.out.println(v.equals(vec));} } 15、E firstElement(); ? ? ? ?返回此向量的第一個組件(位于索引0)處的項。
package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");System.out.println(v.firstElement());System.out.println(v.firstElement());Vector vec=new Vector();vec.add("aa");vec.add("bb");v.add(0,vec); // 插入第一個位置System.out.println(v.firstElement());System.out.println(v.firstElement());} } 16、E lastelement(); ? ? ?返回此向量的最后一個組件。代碼略。

17、E get(int index); ? ? ? 返回向量中指定位置 的元素。

package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");System.out.println(v.get(0));System.out.println(v.get(3));// 在這里,index值不能小于0,或者大于3} }18、int hashCode(); ? ?返回此向量的哈希碼值。

package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");System.out.println(v.hashCode());} }19、int indexOf(Object o,int index); ? 返回此向量中第一次出現的指定的元素的索引,從index處正向索引,如果未找到該元素,則返回-1.

20、int indexOf(Object o); ? ? ? 返回此向量中第一次出現的指定元素的索引,如果此向量不包含該元素,則返回-1。

21、int lastIndexOf(Object o,int index); ? 返回此向量中最后一次出現的指定元素的索引,從index處逆向搜索,如果未找到該元素,則返回-1.

22、int lastIndexOf(Object o); ? ?返回此向量中最后一次出現的指定元素的索引,如果此向量不包含該元素,則返回-1。

package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");System.out.println(v.indexOf("abc3"));System.out.println(v.indexOf("abc3",3));System.out.println(v.lastIndexOf("abc3"));System.out.println(v.lastIndexOf("abc3",3));} }23、boolean isEmpty(); ?測試此向量是否不包含組件。

24、void clear(); ? ?從此向量中移除所有元素。

package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");System.out.println(v.isEmpty()); // 非空輸出falsev.clear();System.out.println(v.isEmpty()); // 空輸出true} }25、E remove(int index); ?移除此向量中指定位置的 元素

26、boolean remove(Object o); ?移除此向量中指定元素的第一個匹配項,如果向量不包含該元素,則元素保持不變。

27、boolean removeAll(Collection c); ?從此向量中移除包含在指定Collection中的所有元素。

28、void removeAllElements(); ? 從此向量中移除全部組件,并將其大小設置為零。

29、boolean removeElement(Object obj); ?從此向量中移除變量的第一個(索引最小的)匹配項。

30、void removeElementAt(int index); ? ? ?刪除指定索引處的組件

package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");System.out.println(v.removeElement("abc1"));System.out.println(v);Vector vec=new Vector();vec.add("abc4");System.out.println(v.remove(2));System.out.println(v);System.out.println(v.remove("abc2"));System.out.println(v);System.out.println(v.removeAll(vec));System.out.println(v);v.removeAllElements();System.out.println(v);} }31、protected void removeRange(int fromIndex,int toIndex); ? 從此list中移除位于formIndex(包括)與toIndex(不包括)之間的所有元素。

32、boolean retainAll(Collection c); ? ?在此向量中僅保留包含在指定Collection中的元素。

package cn.list.demo;import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;public class VectorDemo {public static void main(String[] args){Vector v=new Vector();v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");v.addElement("abc1");v.addElement("abc2");v.addElement("abc3");v.addElement("abc4");Vector vec=new Vector();vec.add("abc2");vec.add("abc4");System.out.println(v.retainAll(vec));System.out.println(v);} }

此外,還有一些其他方法,這里不再一一列舉。有興趣的可以通過API的介紹自己做練習。

? ? ??



總結

以上是生活随笔為你收集整理的Java中vector的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

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