1. 程式人生 > >java中容器vector的使用和存取

java中容器vector的使用和存取

在java中vector容器相當於c++的動態陣列,Vector 可實現自動增長的物件陣列。 
java.util.vector提供了向量類(vector)以實現類似動態陣列的功能。在Java語言中沒有指標的概念,但如果正確靈活地使用指標又確實可以大大提高程式的質量。比如在c,c++中所謂的“動態陣列”一般都由指標來實現。為了彌補這個缺點,Java提供了豐富的類庫來方便程式設計者使用,vector類便是其中之一。事實上,靈活使用陣列也可以完成向量類的功能,但向量類中提供大量的方法大大方便了使用者的使用。 

    建立了一個向量類的物件後,可以往其中隨意插入不同類的物件,即不需顧及型別也不需預先選定向量的容量,並可以方便地進行查詢。對於預先不知或者不願預先定義陣列大小,並且需要頻繁地進行查詢,插入,刪除工作的情況。可以考慮使用向量類。 

java vector遍歷的五種辦法:

  1. import java.util.Enumeration;  
  2. import java.util.Iterator;  
  3. import java.util.Vector;  
  4. import java.util.function.Consumer;  
  5. publicclass VetcorString {  
  6.     publicstaticvoid main(String[] args) {  
  7.         Vector<String>  t=new Vector<String>();  
  8.         t.add("H");  
  9.         t.add("E"
    );  
  10.         t.add("L");  
  11.         t.add("L");  
  12.         t.add("O");    
  13.         //第一種
  14.         for (String string : t) {  
  15.             System.err.print(string);  
  16.         }  
  17.         //第二種
  18.         t.forEach(new Consumer<String>() {  
  19.             @Override
  20.             publicvoid accept(String t) {  
  21.                 // TODO Auto-generated method stub
  22.                 System.out.print(t);      
  23.             }  
  24.         });  
  25.         //第三種
  26.         for (int i = 0; i < t.size(); i++) {  
  27.             System.out.print(t.get(i));   
  28.         }  
  29.         //第四種
  30.         Iterator<String> it = t.iterator();  
  31.         while (it.hasNext()) {  
  32.             String string = (String) it.next();  
  33.             System.err.print(string);  
  34.         }  
  35.         //第五種
  36.         Enumeration<String> enume = t.elements();  
  37.         while(enume.hasMoreElements()){  
  38.             System.out.print(enume.nextElement().toString());  
  39.         }  
  40.     }  
  41. }

在java中訪問容器時,需要和迭代器iterator配合使用。在上述方法中也有體現,接下來再舉一個例子:

package suanFa01;

import java.util.*;

public class Day01 {
	public  static void main(String []args) {
		 Vector<Integer>  ivec = new Vector<Integer>();
		 System.out.println("請輸入一個整數");
		 Scanner sc = new Scanner(System.in);
		 int n = sc.nextInt();
		 int k = 2;
		// Integer integer1 = new Integer(k);
		 System.out.println(n+"的質因數分解為:");
		 while(n>=2) {
			 if(n%k == 0) {
				 ivec.addElement(k);
				 n = n/k;
			 }
			 else {
				 ++k;
			 }
		 }
		Iterator<Integer> it = ivec.iterator();//通過迭代器來迴圈打印出容器中的元素
		while(it.hasNext()) {
			Integer nnn = it.next();
			System.out.print(nnn+"*");
		}
	 
	}

}

宣告:原創文章,轉載請註明出處。

相關推薦

java容器vector的使用存取

在java中vector容器相當於c++的動態陣列,Vector 可實現自動增長的物件陣列。 java.util.vector提供了向量類(vector)以實現類似動態陣列的功能。在Java語言中沒有指標的概念,但如果正確靈活地使用指標又確實可以大大提高程式的質量。比如在c,

Java容器VectorArrayList執行緒是否安全案例

一句話:Vector執行緒安全,ArrayList執行緒不安全,以下是實驗程式碼: package com.yarm.test; import java.util.ArrayList; import java.util.Vector; public class Arra

Java 的堆

同時 存在 堆棧 color 特殊性 垃圾回收器 速度 自動釋放 靈活  Java把內存劃分成兩種:一種是棧內存,一種是堆內存。 在Java中所有對象的存儲空間都是在堆中分配的,但是這個對象的引用卻是在堆棧中分配,也就是說在建立一個對象時從兩個地方都分配內存,在堆中

Java接口抽象類的比較

系列 分享 space 日誌信息 pub 指向 相關 最好的 就會 Java中接口和抽象類的比較-2013年5月寫的讀書筆記摘要 1. 概述 接口(Interface)和抽象類(abstract class)是 Java 語言中支持抽象類的兩種機制,是

JAVA堆棧內存分配詳解(摘抄)

如果 public china weight 所有 有道 動態 面試題 class 在Java中,有六個不同的地方可以存儲數據: 1.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制. 2. 棧:存放基本類型的變量數據和對象的引用,但對象本身不存放在棧

java的堆

ole table false 回收 jvm 是否 使用 char 編譯 棧與堆都是Java用來在Ram中存放數據的地方。與C++不同,Java自動管理棧和堆,程序員不能直接地設置棧或堆。 Java的堆是一個運行時數據區,類的對象從中分配空間。這些對象通過new、n

Java的equals()hashCode()

sea 接口 後來 ide itl 一個數 毫無 exceptio title 概述 在我們使用類集框架(比方使用hashMap、hashSet)的時候,常常會涉及到重寫equals()和hashCode()這兩個方法。 這兩個方法的聯系是:

Java抽象類接口的區別

pre data 區分 信息 展示 關於 面向 得出 lose 在Java語言中, abstract class 和interface 是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向對象能力。abstract class和interfac

JAVA的waitnotify

try object ted 並不是 阻塞 main nbsp star oid 1 package com.runnabledemo; 2 3 public class waitnotifydemo01 { 4 public static void m

javaString new直接賦值的區別

字符串相同 main 基礎 還需 賦值 請問 常量 int 表達 Java中String new和直接賦值的區別 對於字符串:其對象的引用都是存儲在棧中的,如果是編譯期已經創建好(直接用雙引號定義的)的就存儲在常量池中,如果是運行期(new出來的)才能確定的

Java條件語句if-else的嵌套原則

java;嵌套語句;if-else在Java中,條件語句的格式為:if(condition)Statement在此時的條件語句中的條件是需要用括號把它括起來。其實,Java中的條件語句和C/C++中的是一樣的。而Java常常希望在某個條件為真的時候執行多條語句。此時,我們就會引入一個概念,那就是“塊模塊(bl

java容器類型的數據

style 修改 add 對象 容器類 round fcc element pub StingBiulder,數組,ArrayList StringBiulder:只針對字符串的長度可變。 數組:數組的長度是固定不變的。 ArrayList:長度可變。 構造方法:   Ar

Java的類接口

擁有 編程 指針 比較 抽象類 trac 屬於 ace code 類有兩種: 普通類 : 抽象類(abstract): 抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類一樣。 由於抽象類不能實例化對象,所以抽象類必須被繼承

javaInfinity(無限)NaN

基本類型 eee 實現 表現 規則 println 返回 als ber 1、i == i + 1 一個數字永遠不會等於它自己加1?Java 強制要求使用IEEE 754 浮點數算術運算[IEEE 754],它可以讓你用一個double 或float來表示無窮大。正如我們在

JAVAstring.replace()string.replaceAll()的區別及用法

mod btn dsm ont match cep 產生 生成 語法 乍一看,字面上理解好像replace只替換第一個出現的字符(受javascript的影響),replaceall替換所有的字符,其實大不然,只是替換的用途不一樣。 public Strin

Java關於WeakReferenceWeakHashMap的理解

toolbar println 獲得 必須 方法 ref font 對象 但是 新美大的10月11日的筆試中有一道選擇題,讓選擇函數返回結果,代碼如下: 1 private static String test(){ 2 String a = ne

JAVA構造器方法的區別點

string dem pub 關鍵字 意義 ext 沒有 ron 開始 要學習Java,你必須理解構造器。因為構造器可以提供許多特殊的方法,這個對於初學者經常混淆。但是,構造器和方法又有很多重要的區別。 下面將簡單介紹一下 ,最後用一個表作了些簡單的總結。 功能和作用的不同

Java的異常處理詳解

stat 一個 局部變量 lose 出了 object sta tof .html 原文出處:代碼鋼琴家 簡介 程序運行時,發生的不被期望的事件,它阻止了程序按照程序員的預期正常執行,這就是異常。異常發生時,是任程序自生自滅,立刻退出終止,還是輸出錯誤給用戶?或者用C語

JavaSQL DATE UTIL DATE 的相互轉換

span clas -m cep sta .get turn try urn public String getStringtime (java.sql.Date sdate ){ java.util.Date date = new j

java關於StringStringBuffer的問題與解析

構造 表達式 數據 str 字符數 stringbu 傳遞 數值 動態 問題一:String 和 StringBuffer 的區別JAVA 平臺提供了兩個類: String 和 StringBuf fer ,它們可以儲存和操作字符串,即包含多個字符的字符數據。這個 Stri