gpt4 book ai didi

java - 不使用数据库存储表数据的最佳方法?

转载 作者:行者123 更新时间:2023-12-01 04:47:59 25 4
gpt4 key购买 nike

我需要存储来自解析的 XML 的数据,我的解析没有问题,我可以处理。问题是我收到的表数据基本上每次列名、列号和数据本身都不同。现在我不想使用 SQLite 数据库,因为我的条目数量很少,而且我认为它不适合这种情况。我什至认为我不能使用它,因为我必须为我将收到的每个数据集创建一个新表。现在为了更清楚,这里有一些例子:

 <Details1_Collection>
<Details1 ProductName="Bicycle" Units="2341" DefectedUnits="125" />
<Details1 ProductName="Television" Units="3154" DefectedUnits="75" />
<Details1 ProductName="Keyboard" Units="2413" DefectedUnits="12" />
...
</Details1_Collection>

或另一个XML:

 <Details_Collection>
<Details HireDate="2003-02-15T00:00:00" JobTitle="Chief Executive Officer" BirthDate="1963-03-02T00:00:00" />
<Details HireDate="2002-03-03T00:00:00" JobTitle="Vice President of Engineering" BirthDate="1965-09-01T00:00:00" />
<Details HireDate="2001-12-12T00:00:00" JobTitle="Engineering Manager" BirthDate="1968-12- 13T00:00:00" />
...
<Details_Collection>

现在您可以注意到 XML 标记不同:Details1_CollectionDetails_CollectionDetails1Details ,我几乎每次都会收到一个新的标签集。但这对我来说不是问题,因为我在更早的服务器调用中收到它们,所以我知道应该解析哪些标签。我不需要存储属性和名称,因为我也已经有了这些。我只需要存储值。

问题:

我应该如何存储属性数据,它基本上是一个表数据,但它是一个不同的表,每次都有不同的列名和编号?我不想将此数据作为 String/Dom 元素存储在其父对象中,而是将其解析为一些 java可以在 UI 线程上轻松访问的数据结构。

简而言之:

此数据是更大对象的一部分,我的目标是将其解析为某种数据结构并将其附加为父类的一部分。

如有任何帮助,我们将不胜感激。

最佳答案

我偶然发现了以下论坛帖子:

http://www.javaprogrammingforums.com/java-programming-tutorials/696-multi-dimension-arraylist-example.html

ArrayLists有一个ArrayList的实现,这是代码:

import java.util.ArrayList;

public class ArrayList2d<Type>
{
ArrayList<ArrayList<Type>> array;

public ArrayList2d()
{
array = new ArrayList<ArrayList<Type>>();
}

/**
* ensures a minimum capacity of num rows. Note that this does not guarantee
* that there are that many rows.
*
* @param num
*/
public void ensureCapacity(int num)
{
array.ensureCapacity(num);
}

/**
* Ensures that the given row has at least the given capacity. Note that
* this method will also ensure that getNumRows() >= row
*
* @param row
* @param num
*/
public void ensureCapacity(int row, int num)
{
ensureCapacity(row);
while (row < getNumRows())
{
array.add(new ArrayList<Type>());
}
array.get(row).ensureCapacity(num);
}

/**
* Adds an item at the end of the specified row. This will guarantee that at least row rows exist.
*/
public void Add(Type data, int row)
{
ensureCapacity(row);
while(row >= getNumRows())
{
array.add(new ArrayList<Type>());
}
array.get(row).add(data);
}

public Type get(int row, int col)
{
return array.get(row).get(col);
}

public void set(int row, int col, Type data)
{
array.get(row).set(col,data);
}

public void remove(int row, int col)
{
array.get(row).remove(col);
}

public boolean contains(Type data)
{
for (int i = 0; i < array.size(); i++)
{
if (array.get(i).contains(data))
{
return true;
}
}
return false;
}

public int getNumRows()
{
return array.size();
}

public int getNumCols(int row)
{
return array.get(row).size();
}
}

这是我目前发现的存储我想要存储的数据的最佳方式。Java 专家您怎么看?

谢谢。

关于java - 不使用数据库存储表数据的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com