2017-02-10 83 views
0

我的问题是,我们何时需要创建新的数据结构,何时应该使用内置的数据结构。Java - 利用可用的数据结构或创建新的数据结构

假设我必须读取一个文件。基于模式匹配,我必须得到3个属性。即propertyA, propertyB, propertyC

从5个文件中收集这3个属性后,我必须写入数据库。

选项1:

创建一个读卡器读取的文件,将返回MapJson。 调用读者的类将获得返回的数据结构。在这种情况下,它可以是Map or Json

我会在来电类Map<StringFileName, MapReturnedData>中创建另一个地图。

如果我从所有文件中获取所有数据,我将它填充到数据库中。

选项2

代替Map or Json创建具有3点的属性和它的getter和setter用户定义的类。我们不得不使用哪一个?如果两者都相同,那么当我们必须使用用户定义和内置?

+0

您是否计划在软件中反复执行此任务?如果是这样,那么第三个选择是创建一个代表从文件读取的数据的POJO类,然后使用类似Hibernate的东西将其保存到数据库中。如果你不打算使用ORM工具,那么你的任何一种方法都应该使用JDBC。 –

+0

@TimBiegeleisen我不得不在不同的线程中做这些工作。这是一个火花的工作。每个线程都做我所解释的。而数据库是hbase。请告诉我 –

+0

我会按照@TimBiegeleisen的建议。我没有看到5个文件中3个属性的自定义结构的性能提升。 15读取/存储* N或仅3 * 5?你可能会得到更好的性能,从获得模式匹配 – efekctive

回答

0

在我看来,这取决于你对数据做多少处理。如果3个属性正在被读取并写入数据库,则选项1是一个直接的选择。它可能执行得更好,因为它可能会减少正在创建的对象的数量。另一方面,如果数据需要格式化和转换,如果您可能正在处理某些字段以创建新字段等,则其他人可以更容易理解您是否将数据读入编写良好的类结构并封装某些班级内的处理(选项2)。

+0

是的。只是阅读和写作。无需处理 –

0
  1. 如果您有大量文件,并定义了数据结构,意味着你有容易支持内置的数据类型,那么你可以使用MapJson方式从文件中获取数据,并把它放入DB数据。 如果你使用的是NOSql数据库,那么第一个选项是好的。 如果您在从文件读取数据后进行了一些处理,则此选项非常好。

  2. 根据您的测试场景,您必须使用您自己的POJO以及3个属性。即propertyA, propertyB, propertyC如果只是读写,那么这个选项是理想的选择。

当您使用POJO选项时,这将为您提供更好的维护和灵活性来添加或删除属性。 如果你想自己的标记,然后去用户定义的选项。

何时使用定义并构建的用户英寸

内置的数据类型是通用的数据类型,例如int, float array, etc

用户定义的数据类型是用户/程序员自己定义的数据类型。例如,类,接口。如果您的数据不适合内置数据类型,那么只能使用用户定义的数据类型。

根据您的数据决定&您想如何管理该数据。 详情请参阅this link