/** * 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(); //假设原来列是等长的,否则应该取最长的 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; }
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; }