java中容器vector的使用和存取
java.util.vector提供了向量類(vector)以實現類似動態陣列的功能。在Java語言中沒有指標的概念,但如果正確靈活地使用指標又確實可以大大提高程式的質量。比如在c,c++中所謂的“動態陣列”一般都由指標來實現。為了彌補這個缺點,Java提供了豐富的類庫來方便程式設計者使用,vector類便是其中之一。事實上,靈活使用陣列也可以完成向量類的功能,但向量類中提供大量的方法大大方便了使用者的使用。
建立了一個向量類的物件後,可以往其中隨意插入不同類的物件,即不需顧及型別也不需預先選定向量的容量,並可以方便地進行查詢。對於預先不知或者不願預先定義陣列大小,並且需要頻繁地進行查詢,插入,刪除工作的情況。可以考慮使用向量類。
java vector遍歷的五種辦法:
- import java.util.Enumeration;
- import java.util.Iterator;
- import java.util.Vector;
- import java.util.function.Consumer;
- publicclass VetcorString {
- publicstaticvoid main(String[] args) {
- Vector<String> t=new Vector<String>();
- t.add("H");
- t.add("E"
- t.add("L");
- t.add("L");
- t.add("O");
- //第一種
- for (String string : t) {
- System.err.print(string);
- }
- //第二種
- t.forEach(new Consumer<String>() {
- @Override
- publicvoid accept(String t) {
- // TODO Auto-generated method stub
- System.out.print(t);
- }
- });
- //第三種
- for (int i = 0; i < t.size(); i++) {
- System.out.print(t.get(i));
- }
- //第四種
- Iterator<String> it = t.iterator();
- while (it.hasNext()) {
- String string = (String) it.next();
- System.err.print(string);
- }
- //第五種
- Enumeration<String> enume = t.elements();
- while(enume.hasMoreElements()){
- System.out.print(enume.nextElement().toString());
- }
- }
- }
在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容器Vector和ArrayList執行緒是否安全案例
一句話: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中的wait和notify
try object ted 並不是 阻塞 main nbsp star oid 1 package com.runnabledemo; 2 3 public class waitnotifydemo01 { 4 public static void m
java中String 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): 抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類一樣。 由於抽象類不能實例化對象,所以抽象類必須被繼承
java中Infinity(無限)和NaN
基本類型 eee 實現 表現 規則 println 返回 als ber 1、i == i + 1 一個數字永遠不會等於它自己加1?Java 強制要求使用IEEE 754 浮點數算術運算[IEEE 754],它可以讓你用一個double 或float來表示無窮大。正如我們在
JAVA中string.replace()和string.replaceAll()的區別及用法
mod btn dsm ont match cep 產生 生成 語法 乍一看,字面上理解好像replace只替換第一個出現的字符(受javascript的影響),replaceall替換所有的字符,其實大不然,只是替換的用途不一樣。 public Strin
Java中關於WeakReference和WeakHashMap的理解
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語
Java中SQL 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中關於String和StringBuffer的問題與解析
構造 表達式 數據 str 字符數 stringbu 傳遞 數值 動態 問題一:String 和 StringBuffer 的區別JAVA 平臺提供了兩個類: String 和 StringBuf fer ,它們可以儲存和操作字符串,即包含多個字符的字符數據。這個 Stri