当前位置:首页 » 操作系统 » 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,用法一样,就是多了个容器,会有类型检查,其他类型的放不就去

热点内容
阴阳师按键脚本 发布:2024-05-05 12:00:33 浏览:758
魔兽查脚本 发布:2024-05-05 11:54:37 浏览:38
sqlserver执行时间 发布:2024-05-05 11:50:31 浏览:648
终端配置账号该如何改密码 发布:2024-05-05 11:24:37 浏览:825
成都存储研发招聘 发布:2024-05-05 11:24:29 浏览:285
电脑服务器名称怎么查找 发布:2024-05-05 10:49:37 浏览:470
电脑连到代理服务器 发布:2024-05-05 10:40:02 浏览:250
华为安卓手机如何投屏到雷克萨斯 发布:2024-05-05 10:37:50 浏览:211
微博上传原图 发布:2024-05-05 10:20:05 浏览:749
服务器换电脑需要什么东西 发布:2024-05-05 09:52:28 浏览:754