导航:首页 > 编程语言 > javavector转为数组

javavector转为数组

发布时间:2021-12-08 14:22:51

java.util.vector怎么代替数组

在Java中,数组不能动态重设大小。一个可替代方法是使用java.util.ArrayList (或者java.util.Vector)代替使用原始数组(array)。另一种解决方案是用一个不同大小的数组重设数组,将旧数组内容拷贝到新的数组。
/** * 使用一个新大小重设数组,并拷贝旧数组的内容到新数组 * @param oldArray 旧数组被重设 * @param newSize 新数组大小 * @return 返回带同样内容的新数组 */privatestatic Object resizeArray (Object oldArray, int newSize){ int oldSize = java.lang.reflect.Array.getLength(oldArray); Class elementType = oldArray.getClass().getComponentType(); Object newArray = java.lang.reflect.Array.newInstance( elementType,newSize); int preserveLength = Math.min(oldSize,newSize); if (preserveLength >0) System.array (oldArray,0,newArray,0,preserveLength); return newArray; }// resizeArray()测试用例publicstaticvoid main (String[] args) { int[] a = {1,2,3}; a = (int[])resizeArray(a,5); a[3] =4; a[4] =5; for (int i=0; i

㈡ java Vector 怎么用一个Vector来给一个以维数组赋值呢

兄弟你好,在说这个问题之前,我需要先说明楼上兄弟所说调用Vector的toArray();方法,确实,他是把Vector里的对象转换为了数组,但是那是Object类型的数组,返回的是Object对象,你依然是需要强转处理的。
你如果想把vector里存储的对象转换存储到short数组,那么有以下几种选择:
一,你的vector里存储的都是可以转变为short的数字字符串,如"1","22"等等。
二,你的vector里存储的都是short的封装类Short类型的对象。
三,你的vector里存储的都是可以转变为short类型的其他基本类型的封装类如Integer,Float等,但是你要保证这些范围都在32767 ~ -32768 。
Vector类里的toArray()方法是把当前这个vector里存储的对象按顺序放到一个Object类型的数组里面,很明显这不符合你的要求。
JAVA数据类型里面,short数值范围是 32767 ~ -32768
所以你如果想把vector里的数字或者数字字符串都转换到short数组里,你首先要保证你的数字范围在32767 ~ -32768
-----------------------------------------------
Vector v = new Vector();
v.add(1);
v.add(2);
v.add(3);
v.add(4);

你用这种写法将基本类型的数字添加到vector,说明你用的是jdk1.5或者1.6版本的。
jdk1.5以后引入了泛型能够自动将基本类型转换为对应的封装类,你这里添加的是int实际上他在存储的时候已经转换为了java.lang.Integer,所以你才可以这样写。
----------------------------------------------------
既然是转换为了Integer类型,那好办,你取的时候先按照Integer类型来取,然后转换为int,最后强制转换为short,并且创建一个与vector的size大小一致的数组来存储,代码如下:

public class TestArray {

public static void main(String[] args){
Vector v = new Vector();
v.add(1);
v.add(2);
v.add(3);
v.add(4);

short []shortArray = new short[v.size()];
for(int i = 0 ; i < v.size();i++){
System.out.println("vector里存储的对象类型--->" + v.get(i).getClass().getName() + "index---->" + i);
Integer temp = (Integer)v.get(i);
shortArray[i] =(short) temp.intValue();
}
}
}
---------------------------------
另外一种方法就是调用toArray()方法然后再转换Object数组对象为Integer-int-short,这样是可行的,但是绕弯路了。

㈢ java ,Vector 的toArray 的方法

自己看复看吧,另外我制试过一楼的方法,好像不行,会异常
public static void main(String[] args) {
Vector<Double> vector = new Vector<Double>();
vector.add(2.3);
vector.add(3.2);
vector.add(3.0);

Double [] item = new Double[vector.size()];
vector.toArray(item);
for(int i = 0;i<item.length;i++)
{
System.out.println(item[i]);
}
}

㈣ java Vector 怎么用一个Vector来给一个一维数组赋值呢

Vector<Integer> v = new Vector<Integer>();
v.add(1);
v.add(2);
v.add(3);
v.add(4);
short[] a = new short[4];
for(int i=0;i<v.size();i++){
a[i]=Short.valueOf(v.get(i).toString());
}//循环打印输出验证是否存入数组
for(int j=0;j<a.length;j++){
System.out.println(a[j]);
}

㈤ 请问在JAVA中 VECTOR排序一定要转成数组吗有没有排序函数

Vector是不能自动排序的,2楼说的add()方法加一个数字是你自己加的,等于你自己来排序,呵呵!

要实现排序要用java.util包下的另一个类叫TreeSet
你可以把你要排序的属性放到一个TreeSet中,这个类在java.util包中,而且这个TreeSet中只能存放这个属性,也就是元素对象类型要一致!然后这个对象要是可以比较的,就是说你定义的这个类是可以比较的,这个类要实现Comparable接口,然后实现其中的compareTo方法,给出你的比较方法,像我下面的例子中我对学生这个类用年龄排序,如果年龄相同的TreeSet会把这个对象舍去的,所以你可以给出多个比较方法,比如说年龄相同,就按照姓名在排序,姓名相同再按照学号排序,保证加到TreeSet中的元素不同,因为TreeSet会根据你的比较方法自动舍去相同的元素!
import java.util.*;
public class SetTest {
/**
* @param args
*/
public static void main(String args[]){
TreeSet hs=new TreeSet();

hs.add(new Student("cyq",26));
hs.add(new Student("binxin",24));
hs.add(new Student("binxin",23));
for (Object o:hs){
System.out.println(o);
}

}
}
class Student implements Comparable{
String name;
int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String toString(){
return name+":"+age;
}

public int compareTo(Object o) {
Student s=(Student)o;
return this.age-s.age;
}

}

当然像String 和8种基本类型都已经实现了Comparable方法,可以直接放到数组中自动排序

㈥ Java怎么读取Vector中的元素(元素是一个数组)

for(int i =0; i<n; ++i) //n为数组长度
{
if(a[i] == temp) //temp为要查找 的元素
return i; //i为该元素在数组中的位置
}

㈦ java里面,怎么将一个二维的Vector对象转化成一个二维数组了

用循环,但Vector对象里的值的类型要去数组中保持一致..

㈧ java中 如何从Vector中取出数组

Vector是一个容器,可以容纳不同类型的对象,数组也可以。

比如有个int型数组:intdata1[]={1,2,3};

放入vector:v.addElement(data1);

然后可以这么取:

for(intinteger:(int[])v.elementAt(i)){

System.out.println(integer);

}

完整的例子如下:

importjava.util.Vector;
classTest{
publicstaticvoidmain(Stringargs[]){
//定义整形数组:
intdata1[]={1,2,3};
intdata2[]={4,5,6};
intdata3[]={7,8,9};

//定义一个vector容器对象
Vectorv=newVector();
//向容器中放数组
v.addElement(data1);
v.addElement(data2);
v.addElement(data3);
//开始循环迭代数组对象
for(inti=0;i<v.size();i++){
System.out.println("----------");
//由于没有用泛型,这里需要类型强制转化,转换为int[]才可以遍历出来
for(intinteger:(int[])v.elementAt(i)){
System.out.println(integer);
}
}
}
}

㈨ java vector如何放入string数组 不是遍历放入

public static void main(String[] args)
{
属Vector<String> vector = new Vector<String>();
String[] a = new String[]{"a", "b", "c"};
String[] b = new String[]{"d", "e", "f"};
vector.addAll(Arrays.asList(a));
vector.addAll(Arrays.asList(b));
for (Iterator<String> iter = vector.iterator(); iter.hasNext();) {
String value = iter.next();
System.out.println(value);
}
}

㈩ 将一个vector转换为一个二维数组

循环赋值呗,循环条件
loop
if(vector.next == null) break;
在这里给定义好的数组赋值就OK了

阅读全文

与javavector转为数组相关的资料

热点内容
如何制作安装系统镜像文件 浏览:399
win10文件夹左上角有红点 浏览:487
你为什么学plc编程 浏览:828
网络连接没了 浏览:991
代码打印pdf 浏览:563
扣扣红包网络连接失败 浏览:301
win10商城下载文件在哪 浏览:975
系统制作镜像文件 浏览:249
苹果手机指纹贴有危险 浏览:329
哪里有高中生学编程的 浏览:984
二零一八版cad的文件布局 浏览:181
js右键选中treeview 浏览:904
linux系统交换分区的文件格式是 浏览:218
数控机床编程里u5代表什么意思 浏览:202
da14580可以跑linux 浏览:819
电脑文件后缀名编程有哪些 浏览:832
怎么画网络狗头 浏览:452
javagetfoldername 浏览:994
设置小爱同学下载什么app 浏览:50
中行网银网络错误 浏览:773

友情链接