當前位置:首頁 » 操作系統 » javavector源碼

javavector源碼

發布時間: 2022-10-04 23:28:52

java中的vector 是什麼意思呢

java中vector和數據非常類似,兩者之間也經常成對出現,下面是兩者的比較:

1、數組:java arrays的元素個數不能下標越界,從很大程度上保證了java程序的安全性,但創建時必須指定數組的大小,並不能再改變。

2、vector:對比於array,當更多的元素被加入進來以至超出其容量時,vector的size會動態增長,而array容量是定死的。同時,vector在刪除一些元素後,其所有下標大於被刪除元素的元素都依次前移,並獲得新下標比原來的小了)。

② list和vector的contains方法源碼相同,輸出怎麼不同呢

可能是 底層實現機制不同 vector的是 自增長的數組 而list則是雙向鏈表

③ JAVA 中怎樣用 Vector 做一個循環隊列

import java.util.Random;

public class VQ<T> {
java.util.Vector<T> eles;
int p=0,q=0;
public VQ(int size){
init(size);
}
private void init(int size) {
eles=new java.util.Vector<T>(size);
eles.setSize(size);
}
public VQ(){
init(16);
}
public boolean empty(){
return p==q;
}
public boolean full(){
return ((p+1)%eles.size())==q;
}
public T pop_front(){
assert !empty();
T ret= eles.get(q);
++q;
q%=eles.size();
return ret;
}
public void push_back(T v){
if(!full()){
eles.set(p, v);
++p;
p%=eles.size();
return;
}
VQ<T> tmp=new VQ<T>(eles.size()*2);
while(!empty()){
tmp.push_back(pop_front());
}
eles=tmp.eles;
p=tmp.p;
q=tmp.q;
push_back(v);
}

/**
* @param args
*/
public static void main(String[] args) {
VQ<Integer> t=new VQ<Integer>();
for(int i=0;i!=100;++i){
if(Math.random()>0.3||t.empty()){
t.push_back(i);
}else{
System.out.print(t.pop_front()+",");
}
}
while(!t.empty()){
System.out.print(t.pop_front()+",");
}
}

}

④ Java中的Vector是什麼意思

vector與數組類似,但能被擴大和縮小。

向量與數組的區別:

1、Java的數組可存儲任何類型的數組元素,包括數值類型和所有類類型

2、Java向量只能存儲對象類的實例。

向量能重定位和調整自己的容量。預設時,向量重定位一次,其容量就擴大一倍,呈指數增長,所以應指定容量增量,做為向量構造函數的第二個參數,來創建向量:

Vector itemsOrdered = new Vector(3.10);這樣向量每重定位一次,其容量都增加10個元素。

v.size()返迴向量中的元素個數,等價於 arry.length();

如果向量已達到其永久大小,則可調用tirmToSize 方法,將內存塊大小調整到剛好能容納當前個數的向量元素

向量中不能用方便的[]句法,而必須用elementAt 和setSlementAt 方法來訪問或修改元素。

數組:x = a[i](訪問) a[i] = x;(修改)
向量:x = v.elementAt(i) v.SetElementAt(x.i)

⑤ java如何判斷兩個Vector 是否相等一定要循環么 Vector有沒有現成的方法

剛才看 Vector.equals() 源碼,次序要一樣才會相等,如果放進去的次序不一樣,也不會相等的。

附: 源碼:

public boolean equals(Object o) {
if (o == this)
return true;
if (!(o instanceof List))
return false;

ListIterator<E> e1 = listIterator();
ListIterator e2 = ((List) o).listIterator();
while(e1.hasNext() && e2.hasNext()) {
E o1 = e1.next();
Object o2 = e2.next();
if (!(o1==null ? o2==null : o1.equals(o2)))
return false;
}
return !(e1.hasNext() || e2.hasNext());
}

⑥ Java中Vector的定義

Vector 可實現自動增長的對象數組。
java.util.vector提供了向量類(vector)以實現類似動態數組的功能。在Java語言中沒有指針的概念,但如果正確靈活地使用指針又確實可以大大提高程序的質量。比如在c,c++中所謂的「動態數組」一般都由指針來實現。為了彌補這個缺點,Java提供了豐富的類庫來方便編程者使用,vector類便是其中之一。事實上,靈活使用數組也可以完成向量類的功能,但向量類中提供大量的方法大大方便了用戶的使用。
創建了一個向量類的對象後,可以往其中隨意插入不同類的對象,即不需顧及類型也不需預先選定向量的容量,並可以方便地進行查找。對於預先不知或者不願預先定義數組大小,並且需要頻繁地進行查找,插入,刪除工作的情況。可以考慮使用向量類。

向量類提供了三種構造方法:
public vector()
public vector(int initialcapacity,int capacityIncrement)
public vector(int initialcapacity)
舉例說明:
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.insertElement("three",2);
v1.insertElement(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]

⑦ java對vector動態數組中的對象排序,以下代碼有何問題,如何修改

package com.tx.collection;


import java.util.Comparator;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

import java.util.TreeMap;

import java.util.TreeSet;

import java.util.Vector;


public class Student {

String name;

int score;


public Student(String n, int s) {

name = n;

score = s;

}


public boolean equals(Object o) {

Student other = (Student) o;

return other.score == score;

}


public String toString() {

return name + "," + score;

}


public static void main(String[] args) {

Vector<Student> stu = new Vector<Student>();

stu.add(new Student("張三", 90));

stu.add(new Student("李四", 80));

stu.add(new Student("小明", 85));

stu.add(new Student("王五", 60));

stu.add(new Student("何六", 70));

Student index = new Student("", 60);

int t = stu.indexOf(index);

System.out.println("成績為60的學生姓名為" + stu.elementAt(t).name);


Set<Student> set = new TreeSet(new Comparator<Student>() {

@Override

public int compare(Student o1, Student o2) {

if (o1.score > o2.score)

return -1;

else if (o1.score < o2.score)

return 1;

else

return 0;

}

});

set.addAll(stu);

Iterator<Student> iterator = set.iterator();

while(iterator.hasNext()){

Student s = iterator.next();

System.out.println(s.name+":"+s.score);

}

}

}

⑧ java中vector是什麼

Vector是一個數組,與ArrayList最大的區別是Vector當成員超出范圍它自增長時每次自增長自身長度的一倍。而ArrayList每次自增長自身長度的一半。

⑨ java中的Vector

vector和arraylist都是差不多的,會用arraylist就可以用vector,但是arraylist速度比它快,但是如果涉及到多線程,就用vector,例子演示直接看文檔,或者網上查一下,寫了也是廢話,第二不就是容器嗎,一個vector里有一堆裝著string的vector,用法一樣,就是多了個容器,會有類型檢查,其他類型的放不就去

熱點內容
在阿里雲上多台伺服器如何組網 發布:2022-12-07 01:33:58 瀏覽:147
動力沙有多少種解壓玩法 發布:2022-12-07 01:33:01 瀏覽:893
java資料庫修改 發布:2022-12-07 01:32:18 瀏覽:993
夢幻新誅仙手游安卓怎麼切換賬號 發布:2022-12-07 01:30:22 瀏覽:45
安卓大屏導航如何鎖屏 發布:2022-12-07 01:29:22 瀏覽:249
幼兒園滅火器配置按什麼級別 發布:2022-12-07 01:23:01 瀏覽:512
c語言dnl 發布:2022-12-07 01:22:35 瀏覽:906
安卓暴露設置有什麼用 發布:2022-12-07 01:20:41 瀏覽:756
酷魚源碼 發布:2022-12-07 01:19:49 瀏覽:377
途觀買哪個配置性價比高 發布:2022-12-07 01:18:58 瀏覽:911