存储大约140行乘3列的oracle表的最佳数据结构是什么。我在想一个多维数组。

充其量我并不一定意味着最有效率(但我很想知道你的意见),因为该程序将作为一个有足够时间运行的工作运行但我确实有一些限制:

多个键可能是“空”。首先。所以第一列可能有多个空值。我还需要能够访问其他列中的元素。有什么比线性搜索更好的访问数据?

再次,像[] [] []这样的东西会起作用..但是有没有类似3列映射的地方我可以通过键或第二列访问?我知道地图只有两个值。

所有数据可能都是字符串或转换为字符串。

由于

有帮助吗?

解决方案

如果您需要通过密钥和其他密钥访问您的数据,那么我只需使用2张地图并定义一个单独的类来保存您的记录。

class Record {
   String field1;
   String field2;
   String field3;
}

   Map<String, Record> firstKeyMap = new HashMap<String, Record>();
   Map<String, Record> secondKeyMap = new HashMap<String, Record>();

其他提示

包含3个字段的自定义类,以及该类的 java.util.List

在这种情况下,将数据挖掘到数组中没有任何好处,您的性能没有任何改进,当然也没有改进代码可维护性。

这是人们用面向对象语言编写FORTRAN的另一个例子。

Java关于对象。如果您开始使用对象来抽象问题,隐藏客户端的细节并减少耦合,那么您会好得多。

这三个项目代表什么明智的对象,有意义的行为?我从那开始,后来担心数据结构和持久性。

  

所有数据可能都是字符串或转换为字符串。

如果他们真的是字符串,这很好,但我鼓励你更深入地看看你是否能做得更好。

例如,如果您编写使用信用评分的应用程序,则可能会将其作为数据库中的数字列保留。但是,您可以更加努力地查看问题并将该值封装到CreditScore对象中。如果你有这个,你会发现你可以添加单位(“FICO”与“TransUnion”),比例(范围从0到850),也许还有一些丰富的行为(例如,规则何时重新排序得分的规则) )。您将所有内容封装到一个对象中,而不是分散逻辑,以便在整个代码库中对信用分数进行操作。

开始少考虑表和列以及有关对象的更多内容。或切换语言。 Python内置了元组的概念。也许这对你来说会更好。

我创建了一个对象来映射你的记录,然后创建一个这个对象的集合。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top