1

Javaでxmlファイルを解析し、後で並べ替えるために配列に格納する必要があります。xmlファイルの形式は次のとおりです

<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>

各実験について、RIndex、DIndex、および実験値を保存する必要があります。私が考えた最も簡単な方法は2D配列でしたが、これらの属性(RIndex、DIndex、または実験値)のいずれかで並べ替える必要がある関数があります。コレクションのArrayListも使用することを考えました。これはそれを行うための最良の方法ですか?

4

4 に答える 4

1

私は間違いなくトップレベルでArrayListを使用し、Comparator考えている並べ替え基準に従って値を並べ替えるカスタムを提供します。コンパレータの使用法については、以下を参照してください。

値を保存する方法を選択することが、最も重要な選択になります。最良のオプションは次のようになります。

  • Experiment必要なフィールドを含むクラスを定義します。これが最も効率的です。
  • 各実験結果を、HashMapフィールドを値にマップするに保存します。これは効率が低下しますが、属性などが異なるさまざまなタイプの実験がある場合に役立つ可能性があります。
于 2012-10-14T06:23:01.520 に答える
0

3つの値を使用して単純なクラスを作成し、並べ替えの各ケースに適切なコンパレータを作成してから、それらをArrayListに詰め込み、適切なコンパレータを使用します。

于 2012-10-14T06:08:29.473 に答える
0

Experimentインスタンス変数、、を使用してクラスをID作成RIndexDIndex、クラスValueのオブジェクトを並べ替えることができるComparatorインターフェイスを実装できますExperiment(Comparatorの使用方法を知っていることを前提としています)。

于 2012-10-14T06:10:26.073 に答える
0

パフォーマンスが重要であるように思われるので、ベンチマークを設定すると確信しています。彼らはあなたに最良の方法が何であるかを教えてくれます。

これを行うための明白な方法は、データをSortedSetに配置することです。したがって、個別の並べ替え手順はありません。ファイルから何かを読み取るよりもはるかに高速である必要があるので、大丈夫だと思います。それと。

各値を一意にするために、関連するすべての値と、場合によっては追加のIDを含む単純なクラスを作成する必要があります。

このクラスはComparableインターフェースを実装する必要があります。または、異なる基準でソートする必要がある場合は、個別のComparatorを提供できます。

于 2012-10-14T06:10:30.770 に答える