【问题标题】:java DataBase classjava数据库类
【发布时间】:2018-10-02 16:07:08
【问题描述】:

我正在尝试制作一些DataBase 课程。我知道我希望每一列都表示为 ArrayList。 我想这样创建构造函数

DataBase(String[] columnNames, String[] types)

例如

DataBase({"Column1","Column2","Column3"},{"int","string","myOwnType"})

我尝试使用 HashMap 来实现它,它将以列名作为键,以 ArrayList 作为值。

这是我目前得到的。

public class DataFrame {

    public HashMap<String, ArrayList> data;
    public String[] names;
    public String[] types;

    public DataFrame(String[] names, String[] types) {
        data = new HashMap<String, ArrayList>();
        nazwy = new String[_names.length];
        typy = new String[_types.length];
        for(int i = 0; i < _names.length; i++) {
            ArrayList column = new ArrayList<>();
            data.put(_nazwy[i], column);
        }
    }
}

如何创建程序中给定类型的列?我想过创建 ArrayList,然后制作具有标签和该列表的 Map,但我找不到如何做到这一点。

【问题讨论】:

  • 实现内存数据库引擎是个好主意吗?这是你的博士论文吗?因为否则我会建议您使用其他人已经花费数年时间创建的免费软件之一。
  • 我知道谁让它只适用于一种类型。但是如何做到这一点,以便每一列都在构造函数中指定类型?
  • 是的,这是我的博士论文:/
  • 很难说这是否是个好主意。首先,这似乎符合表的概念,而不是数据库的概念。此外,这在很大程度上取决于您的使用模式(您将如何更新和查询数据)。因此,正如@mypetlion 所说,使用现有的解决方案(例如 H2)。
  • 不幸的是,我需要自己做这个。当我在实现中指定类型时,我做到了这一点,但是有没有一种简单的方法可以从 string[] 类型创建正确的 ArrayList

标签: java arraylist types hashmap


【解决方案1】:

在您的方法中,此循环正在重新初始化数组列表,因此无法存储记录。

for(int i = 0; i < _names.length; i++) {
        ArrayList column = new ArrayList<>();
        data.put(_nazwy[i], column);
    }

有列表总是好的。 Map 会用列名来表示每条记录,以便于处理。

     ArrayList list = new ArrayList(50);
     HashMap row = new HashMap(columns);
        for(int i=1; i<=columns; ++i){           
              row.put(getColumnName(i),data(i));
        }
        list.add(row);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    相关资源
    最近更新 更多