1. java 怎麼用vector排序
java.util.Vector v = new java.util.Vector();
v.get(index);
index是從0開始的索引. 就可以取出來了. 取出後的數據是Object類型 轉換下就可以了(Integer)
2. java 怎麼遍歷多個vector
for (int i=0; i<myvector.size(); i++) {
for (int j=0; j<myvector.get(i).size(); j++) {
//......
}
}
3. 為什麼java vector遍歷是線程不安全的
就算是線程安全也會出現下標越界啊 線程安全的概念是 不會允許一個數在同時間內重復 操作導致 數據丟失或者篡改 數組下標越界跟線程安全是沒有關系的
4. java中Vector中的對象,中調用後,如何再獲得其線程對象
Vector 可以用Iterator迭代的。也可以用for循環進行遍歷。比如:
for (Iterator iterator = vec.iterator(); iterator.hasNext();) {
Bullet bullet = (Bullet) iterator.next();
}
for (int i = 0; i < vec.size(); i++) {
Bullet b = (Bullet) vec.get(i); // 得到的object對象強轉為Bullet對象
}
你在for循環里添加判斷就好了。也就是你所謂的 獲得各個Bullet對象線程運行的情況 。 不過注意迭代的時候是不能對容器進行更改的。所謂更改比如刪除或者增加一個Bullet對象到容器中。
另外,我也寫過java游戲。曾經也寫過一個關於Bullet類的。 我覺得沒有必要把每個子彈定義成一個線程。 子彈的運動完全可以在draw方法里寫。如果子彈多了。你的游戲效率是很低的。 這是我的建議
5. Java中如何使用Vector
ArrayList會比Vector快,他是非同步的,如果設計涉及到多線程,還是用Vector比較好一些
import java.util.*;
/**
* 演示Vector的使用。包括Vector的創建、向Vector中添加元素、從Vector中刪除元素、
* 統計Vector中元素的個數和遍歷Vector中的元素。
*/
public class VectorDemo{
public static void main(String[] args){
//Vector的創建
//使用Vector的構造方法進行創建
Vector v = new Vector(4);
//向Vector中添加元素
//使用add方法直接添加元素
v.add("Test0");
v.add("Test1");
v.add("Test0");
v.add("Test2");
v.add("Test2");
//從Vector中刪除元素
v.remove("Test0"); //刪除指定內容的元素
v.remove(0); //按照索引號刪除元素
//獲得Vector中已有元素的個數
int size = v.size();
System.out.println("size:" + size);
//遍歷Vector中的元素
for(int i = 0;i < v.size();i++){
System.out.println(v.get(i));
}
}
}
6. java中vector是什麼
Vector 類可以實現可增長的對象數組。與數組一樣,它包含可以使用整數索引進行訪問的組件。但是,Vector 的大小可以根據需要增大或縮小,以適應創建 Vector 後進行添加或移除項的操作。 每個向量會試圖通過維護 capacity 和 capacityIncrement 來優化存儲管理。capacity 始終至少應與向量的大小相等;這個值通常比後者大些,因為隨著將組件添加到向量中,其存儲將按 capacityIncrement 的大小增加存儲塊。應用程序可以在插入大量組件前增加向量的容量;這樣就減少了增加的重分配的量。 由 Vector 的 iterator 和 listIterator 方法所返回的迭代器是快速失敗的:如果在迭代器創建後的任意時間從結構上修改了向量(通過迭代器自身的 remove 或 add 方法之外的任何其他方式),則迭代器將拋出 。因此,面對並發的修改,迭代器很快就完全失敗,而不是冒著在將來不確定的時間任意發生不確定行為的風險。Vector 的 elements 方法返回的 Enumeration 不是 快速失敗的。 注意,迭代器的快速失敗行為不能得到保證,一般來說,存在不同步的並發修改時,不可能作出任何堅決的保證。快速失敗迭代器盡最大努力拋出 。因此,編寫依賴於此異常的程序的方式是錯誤的,正確做法是:迭代器的快速失敗行為應該僅用於檢測 bug。
7. java 實現將Vector集合轉換成LinkedList後使用隊列遍歷方式進行遍歷 急。。。。。
ArrayList,LinkedList,Vestor這三個類都實現了java.util.List介面,但它們有各自不同的特性,主要如下:
一、同步性
ArrayList,LinkedList是不同步的,而Vestor是的。所以如果要求線程安全的話,可以使用ArrayList或LinkedList,可以節省為同步而耗費開銷。但在多線程的情況下,有時候就不得不使用Vector了。當然,也可以通過一些辦法包裝ArrayList,LinkedList,使他們也達到同步,但效率可能會有所降低。
二、數據增長
從內部實現機制來講ArrayList和Vector都是使用Objec的數組形式來存儲的。當你向這兩種類型中增加元素的時候,如果元素的數目超出了內部數組目前的長度它們都需要擴展內部數組的長度,Vector預設情況下自動增長原來一倍的數組長度,ArrayList是原來的50%,所以最後你獲得的這個集合所佔的空間總是比你實際需要的要大。所以如果你要在集合中保存大量的數據那麼使用Vector有一些優勢,因為你可以通過設置集合的初始化大小來避免不必要的資源開銷。
三、檢索、插入、刪除對象的效率
ArrayList和Vector中,從指定的位置(用index)檢索一個對象,或在集合的末尾插入、刪除一個對象的時間是一樣的,可表示為O(1)。但是,如果在集合的其他位置增加或移除元素那麼花費的時間會呈線形增長:O(n-i),其中n代表集合中元素的個數,i代表元素增加或移除元素的索引位置。為什麼會這樣呢?以為在進行上述操作的時候集合中第i和第i個元素之後的所有元素都要執行(n-i)個對象的位移操作。
LinkedList中,在插入、刪除集合中任何位置的元素所花費的時間都是一樣的—O(1),但它在索引一個元素的時候比較慢,為O(i),其中i是索引的位置。
所以,如果只是查找特定位置的元素或只在集合的末端增加、移除元素,那麼使用Vector或ArrayList都可以。如果是對其它指定位置的插入、刪除操作,最好選擇LinkedList
參考文章:
8. JAVA vector問題
你要自己實現這個類的equals方法,用id和其他區別相判斷。然後可以用LinkedList等Collection類實現插入與遍歷。
Vector是同步的類,很慢,你可以用LinkedList或ArrayList等類,比較快。要變成數組也很簡單list.toArray()就完了。
9. java vector 用法
你復制下,就可以運行了,其實沒什麼大錯誤,你沒有把JscrollPanel添加進JFrame所以!我重新修改了下,加上this.setTitle("測試");就可以設置標題了!
package chapter11.awt.menu;
import javax.swing.*;
import java.util.*;
//import java.sql.*;
//import java.awt.event.*;//控制項的監聽
/**
* JTable的使用
* @param args
*/
public class Test extends JFrame{
//rowData用來存放數據,columNames用來存放列名
Vector rowData = null;
Vector columnNames = null;
JTable jt = null;
JScrollPane jsp = null;//滾動條
//構造函數
@SuppressWarnings("unchecked")
public Test()
{
columnNames = new Vector();//初始化
//設置列名
columnNames.add("學號");
columnNames.add("姓名");
columnNames.add("性別");
columnNames.add("年齡");
columnNames.add("籍貫");
columnNames.add("系別");
rowData=new Vector();//初始化行數據 rowData可以存放多行
Vector hang=new Vector();//rowData可以存放多行
hang.add("001");
hang.add("張三");
hang.add("男");
hang.add("20");
hang.add("中國");
hang.add("信管");
//加入到rowData
rowData.add(hang);
//初始化JTabel
jt=new JTable(rowData,columnNames);
//初始化jsp JScrollPane
jsp=new JScrollPane(jt);
this.setTitle("測試");
this.add(jt);
this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關閉時自動退出
this.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test=new Test();
}
}
10. java中Vector 的用法
Vector就是一個集合!和List,Arraylist一樣的!一般最常用的就是用的時候new一下,Vector v = new Vector(); 然後在想這個集合中添加東西。應該就是v.add();調用這個方法添加!如果要是輸出呢,用循環一遍歷就行了!