62,623
社区成员
发帖
与我相关
我的任务
分享
/**
* project_name: Test
* package_name: csdn_Test_20071126
* package_declaration: package csdn_Test_20071126;
* filename: VertorChangeTest.java
* author: yuhaiming
* date: 2007-11-30
*/
package csdn_Test_20071126;
import java.util.*;
public class VertorChangeTest {
/**
* 打印出来
* @param vec
*/
public static void display(Vector vec){
for(int i=0;i<vec.size();i++){
Vector curvec = (Vector)vec.elementAt(i);
for(int j=0;j<curvec.size();j++){
System.out.print(curvec.elementAt(j)+" ");
}
System.out.println("");
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Vector total= new Vector();
initVector(total);
display(total);
total = changeVector(total);
display(total);
}
/**
* 改变向量位置
* @param total
*/
public static Vector changeVector(Vector total){
Vector result = new Vector();
int row = total.size();//得到行数
if(total.size()>0){
Vector curvec = (Vector)total.get(0);
int col = curvec.size();//得到列数
System.out.println("行数:"+row+"列数:"+col);
//交换是将行数列数对换
//第一次循环是得到原来向量列数数量的向量,也就是说原来有4列的话,将得到4个向量
for(int i=0;i<col;i++){
//初始一个对象,这个对象将放到结果集中
Vector curvector = new Vector();
//第二次循环,是对该对象赋值,赋值的数量是原来的行数
for(int j=0;j<row;j++){
curvec = (Vector)total.elementAt(j);
String value = (String)curvec.elementAt(i);//得到该列上的值
curvector.addElement(value);
}
result.addElement(curvector);
}
}else{
System.out.println("元素太少");
}
return result;
}
/**
* 初始化元素
* @param total
* @param ele
*/
public static void initVector(Vector total){
for(int i=0;i<4;i++){
Vector curvector = new Vector();
for(int j=0;j<3;j++){
//System.out.println("a"+i+j);
curvector.addElement("a"+i+j);
}
total.addElement(curvector);
}
}
}
public Vector change(Vector v) {
if (v.size() == 0) return new Vector();
Vector tv; // = (Vector)v.get(0);
//int colLen = tv.size(); //假设原来列是等长的,否则应该取最长的
int maxLen = 0;
for (int i=0; i<v.size(); i++) {
tv = (Vector)v.get(i);
if (tv.size()>max) max = tv.size();
}
Vector col = new Vector[maxLen];
for (int i=0; i<col.length; i++) {
col = new Vector();
}
for (int i=0; i<v.size(); i++) {
tv = (Vector)v.get(i);
for (int j=0; j<tv.size(); j++) {
col[j].addElement(tv.get(j));
}
for (int j=tv.size(); j<maxLen; j++) {
col[j].addElement(""); //这里要补齐
}
}
Vector rst = new Vector();
for (int i=0; i<col.length; i++) {
rst.addElement(col[i]);
}
return rst;
}
public Vector change(Vector v) {
if (v.size() == 0) return new Vector();
Vector tv = (Vector)v.get(0);
int colLen = tv.size(); //假设原来列是等长的,否则应该取最长的
Vector col = new Vector[colLen];
for (int i=0; i<col.length; i++) {
col = new Vector();
}
for (int i=0; i<v.size(); i++) {
tv = (Vector)v.get(i);
for (int j=0; j<tv.size(); j++) {
col[j].addElement(tv.get(j));
}
}
Vector rst = new Vector();
for (int i=0; i<col.length; i++) {
rst.addElement(col[i]);
}
return rst;
}