您的位置:首页 > 其它

一个简单封装存储二维数据表的类

2009-07-05 21:23 471 查看
package com.qq.util;

/*
 * 一个简单封装存储二维数据表的类
 */

import java.util.*;

public class Table {

 // 数据表列的数目
 private int COLUMN = 10;
 // 数据表的数据
 private Vector<ArrayList<String>> m_v = new java.util.Vector<ArrayList<String>>();
 // Vector<String[]> m_c = new java.util.Vector<String[]>(COLUMN);
 // 数据表的列名
 private String[] m_c = new String[COLUMN];

 public <T> void out(T s) {
  System.out.println(s);
 }

 /*
  * 指定列数目构造
  */
 public Table(int column) {
  if (column >= 0) {
   this.COLUMN = column;
   m_c = new String[COLUMN];
  }
 }

 public void modifyitemvalue(int row, int column, String value) {
  checkrow(row);
  checkcolumn(column);

  m_v.get(row).set(column, value);
 }

 public boolean insertrow(ArrayList<String> value) {
  if (value.size() != this.COLUMN) {
   return false;
  }

  m_v.add(value);

  return true;
 }

 public String getitemvalue(int row, int column) {
  checkrow(row);
  checkcolumn(column);

  return m_v.get(row).get(column);
 }

 public int getrow() {
  return m_v.size();
 }

 public int getcolumn() {
  return this.COLUMN;
 }

 public boolean setcolumnname(String[] name) {
  // 加入列名
  if (name.length != this.COLUMN) {
   return false;
  }
  System.arraycopy(this.m_c, 0, name, 0, this.COLUMN);
  return true;
 }

 public void setcolumnname(int column, String name) {
  // 加入列名
  checkcolumn(column);
  m_c[column] = name;
 }

 public String getcolumnname(int column) {
  checkcolumn(column);
  return m_c[column];
 }

 private void checkrow(int row) {
  if (row >= this.m_v.size() || row < 0) {
   String err = "row index invalid";
   throw new ArrayIndexOutOfBoundsException(err);
  }
 }

 private void checkcolumn(int column) {
  if (column >= this.COLUMN || column < 0) {
   String err = "column index invalid";
   throw new ArrayIndexOutOfBoundsException(err);
  }
 }

 /*
  * 测试用例
  */
 private Table value() {
  final int COLUMN = 6;
  // 加入列名
  Table v = new Table(COLUMN);
  String[] column = new String[COLUMN];
  for (int i = 0; i < COLUMN; ++i) {
   v.setcolumnname(i, "COLUMN" + i);
   column[i] = "COLUMN" + i;
  }
  v.setcolumnname(column);

  // 插入数据行数
  for (int k = 0; k < 10; ++k) {
   ArrayList<String> value = new ArrayList<String>(COLUMN);
   for (int i = 0; i < COLUMN; ++i) {
    value.add("Item" + i);
   }
   v.insertrow(value);
  }

  return v;
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Table table = new Table(0);
  Table v = table.value();
  while (true) {
   String name = "";
   for (int k = 0; k < v.getcolumn(); ++k) {
    name += v.getcolumnname(k) + "|";
   }
   table.out(name);
   break;
  }

  for (int i = 0; i < v.getrow(); ++i) {
   String name = "";
   for (int k = 0; k < v.getcolumn(); ++k) {
    name += v.getitemvalue(i, k) + "|";
   }
   table.out(name);
  }
 }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐