JAVA中Vector怎样存放一个动态的二维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中Vector怎样存放一个动态的二维数组相关的知识,希望对你有一定的参考价值。

Vector存放一个一维的动态数组我是会的:
Vector<Double> v=new Vector<Double>();//实例一个v对象
v.addElement();//在v中添加元素的方法
v.elementAt(i);//取得v中索引为i的元素

可是对于JAVA中Vector怎样存放一个动态的二维数组,以及怎样取到相应的元素还不会,希望大侠们指教!

public class DoSomeThing
public static void main(String[] args)
Vector<Vector> v=new Vector<Vector>();//Vector的一维数组,即二维数组
Vector<Double> v1=new Vector<Double>();//一维数组
Vector<Double> v2=new Vector<Double>();//一维数组
v1.add(1d);
v1.add(2d);

v.addElement(v1);
v.addElement(v2);
//这里是取得Vector中的第一个子Vector,然后用for循环来取得其中的值
Vector<Vector<Double>> vel = v.elementAt(0);
for (int i = 0; i < vel.size(); i++)
System.out.println(vel.elementAt(i));


参考技术A vetor索引偶数位置存放第一行,vector索引奇数存放第二行



0 2 4 6 存放a[0][0],a[0][1], a[0][2], a[0][3]

1 3 5 7 存放a[1][0],a[1][1], a[1][2], a[1][3]

比如你取a[i][j]
对应的vector索引就是

if(i%2==0) index=2*j;else index=i+j*2

像楼上的几位那么做都可以的,不过考虑没什么必要
参考技术B Vector<Vector> v=new Vector<Vector>();//Vector的一维数组,即二维数组

Vector<Double> elem1=new Vector<Double>();//一维数组
Vector<Double> elem2=new Vector<Double>();//一维数组

v.addElement(elem1);
v.addElement(elem2);本回答被提问者采纳
参考技术C 在v里再存个v

动态创建二维数组

vector创建二维数组
初始化二维数组
vector<vector <int> > ivec(n ,vector<int>(m));      //n*m的二维vector
vector<vector <int> > ivec(n , vector<int>(m, 0));  //n*m的二维vector,所有元素为0

动态创建m*n的二维
方法一:
vector<vector <int> > ivec;
ivec.resize(n);
for(int i = 0; i < n; i++) ivec[i].resize(m);

方法二:
vector<vector <int> > ivec;
ivec.resize(n, vector<int>(m));


动态创建二维数组a[n][m]
C语言版:
#include<malloc.h>
int **a = (int **)malloc(n *sizeof(int *));
for(int i = 0; i < n; i++)
    a[i] = (int *)malloc(m *sizeof(int));

C++版:
int **a = new int *[n];
for(int i = 0; i < n; i++) a[i] = new int[m];

  

以上是关于JAVA中Vector怎样存放一个动态的二维数组的主要内容,如果未能解决你的问题,请参考以下文章

利用c++中的vector创建动态二维数组

c语言问题:c语言中二维数组在内存中怎样存储?

c++ 用vector 定义二维数组

如何将二维数组赋值给vector

java中怎样给Boolean型二维数组赋值?

STL之vector