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();调用这个方法添加!如果要是输出呢,用循环一遍历就行了!