java—存储多个相关值以进行排序的最有效方法?
我需要用java解析一个xml文件,并将其存储在一个数组中,以便以后进行排序。xml文件具有这种格式java—存储多个相关值以进行排序的最有效方法?,java,sorting,data-structures,Java,Sorting,Data Structures,我需要用java解析一个xml文件,并将其存储在一个数组中,以便以后进行排序。xml文件具有这种格式 <Experiments> <Experiment ID="312" RIndex="3" DIndex="3">40231</Experiment> <Experiment ID="481" RIndex="2" DIndex="5">23801</Experiment> <Experiment ID="
<Experiments>
<Experiment ID="312" RIndex="3" DIndex="3">40231</Experiment>
<Experiment ID="481" RIndex="2" DIndex="5">23801</Experiment>
<Experiment ID="102" RIndex="1" DIndex="5">41231</Experiment>
</Experiments>
40231
23801
41231
对于每个实验,必须存储RIndex、DIndex和实验值。我认为最直接的方法是2D数组,但有一个函数,我需要根据其中一个属性(RIndex、DIndex或实验值)进行排序。我也想过使用集合的ArrayList。这是最好的方法吗?创建一个包含3个值的简单类,然后为每个排序案例创建适当的比较器,然后将它们填入ArrayList并使用适当的比较器。创建一个包含3个值的简单类,然后为每个排序案例创建适当的比较器,然后将它们填入ArrayList并使用适当的比较器。您可以创建一个类
实验
,使用实例变量ID
、RIndex
、DIndex
和值
,然后实现比较器接口,通过该接口可以对实验
类的对象进行排序。(假设您知道如何使用Comparator)您可以使用实例变量ID
、RIndex
、DIndex
和Value
创建一个类实验
,然后实现Comparator接口,通过该接口可以对实验
类的对象进行排序。(假设您知道如何使用Comparator)因为性能似乎至关重要,我相信您会设置基准测试。它们会告诉您什么是最好的方法
最明显的方法是将数据放在一个文件夹中,这样就没有单独的排序步骤。应该比从文件中读取任何内容快得多,所以我想你应该没问题。这样做
您需要创建一个简单的类,其中包含所有相关的值,可能还有一些附加的id,以使每个值都是唯一的
这个类应该实现接口,或者如果您需要使用不同的标准进行排序,您可以提供单独的。因为性能似乎很关键,我相信您会设置基准。它们会告诉您什么是最好的方法 最明显的方法是将数据放在一个文件夹中,这样就没有单独的排序步骤。应该比从文件中读取任何内容快得多,所以我想你应该没问题。这样做 您需要创建一个简单的类,其中包含所有相关的值,可能还有一些附加的id,以使每个值都是唯一的
这个类应该实现接口,或者如果您需要使用不同的标准进行排序,您可以提供单独的。我肯定会在顶层使用ArrayList,并提供一个自定义的
比较器
来根据您想到的任何排序标准对值进行排序。有关比较器的用法,请参阅:
- 定义一个类
,其中包含您需要的字段。这将是最有效的Experiment
- 将每个实验结果存储在一个将字段映射到值的
中。这种方法效率较低,但如果您有不同属性的不同类型的实验,则可能是一种有用的方法HashMap
比较器
,根据您心目中的任何排序标准对值进行排序。有关比较器的用法,请参阅:
- 定义一个类
,其中包含您需要的字段。这将是最有效的Experiment
- 将每个实验结果存储在一个将字段映射到值的
中。这种方法效率较低,但如果您有不同属性的不同类型的实验,则可能是一种有用的方法HashMap