0

コードに問題があり、4つのダブルを他の4つのダブルのセットと比較する必要があります。このために4次元配列を作成してみました。

double[][][][] myArray = new double[][][][] {{{{1.1}, {1.2}, {1.3},{1.4}}}};

しかし、これに伴う問題は、配列のサイズがわからないため、動的に要素を追加できる必要があることです。私は配列リストに慣れていませんが、これが解決策になるかどうか疑問に思っていましたか?多次元配列リストを作成できますか?

問題のより良い説明を提供するために編集してください:

私が4つのダブルを持っている理由は、彼らが旅に関する場所を保存しているからです。

Double 1 = lattitude of start location. 
Double 2 = longitude of start location.
Double 3 = lattitude of end location. 
Double 4 = longitude of end location.

したがって、私は旅に4つのダブルを関連付けています。これらの値を取得し、他の4つのダブルのセットと比較して、これらの場所が互いに妥当な距離内にあるかどうかを確認する必要があります。私はすでに問題のその側面を解決しました。4つのダブルの1つのセットを他のnのセットと比較するだけで、私がやろうとしています。私は最終的に、すべてのセットを互いに実行して、それらが類似しているかどうかを判断できるようにしたいと考えています。

4

5 に答える 5

0

「セット」という用語について少し混乱しました。これは、double 値の順序が重要ではないことを意味するためです。質問に対する更新に基づいて、順序が重要であると想定してます。

既存の値を反復処理してメソッドを呼び出すだけであれば、それは非常に簡単です。

List<List<Double>> doubles = new ArrayList<List<Double>>();
doubles.add(Arrays.asList(1.1, 1.2, 1.3, 1.4));
doubles.add(Arrays.asList(2.1, 1.2, 1.3, 1.4));
doubles.add(Arrays.asList(1.1, 1.2, 1.3, 1.4));
doubles.add(Arrays.asList(3.1, 1.2, 1.3, 1.4));

List<Double> newValue = Arrays.asList(1.1, 1.2, 1.3, 1.4);
for (List<Double> vals : doubles) {
    compareJourneys(newValue, vals); //this is your comparison method
}

「set」という言葉の使い方を誤解していたことが判明した場合は、 a のList<Set<Double>>代わりに a を使用できますList<List<Double>>

于 2013-03-13T20:13:03.687 に答える
0

まず、4 次元配列を使用する理由はありません。問題はありませんが、この種のコードは醜く見えます!

配列に要素を動的に追加するには、代わりにArrayList<Double>. このデータ構造には固定サイズはありません。次のように初期化できます。

List<Double> dblList = Arrays.asList(1.1, 1.2, 1.3, 1.4);

または

List<Double> dblList = new ArrayList<Double>(new Double[] {1.1, 1.2, 1.3, 1.4});

アップデート

申し訳ありませんが、複数のリストを相互に比較する必要があることに気付きました。それでも、この答えはあなたを助けることができるはずです。

于 2013-03-13T19:39:54.013 に答える
0

4 つの double のセットを相互に比較するには、4 つの次元は必要ありません。必要なのは 2 つだけです。最初の次元は、持っている double のセットの数に関係なく、2 番目の次元は 4 つの double のそれぞれに対するものです。

double[][] myArray = new double[2 /*sets*/][4 /*doubles each*/] = {
    {1.1, 1.2, 1.3, 1.4}, {2.1, 2.2, 2.3, 2.4}};

リストに追加する必要がある場合ArrayList<ArrayList<Double>>は、4 つの double のリストを追加できるようにする必要があります。または、ArrayList<double[]>それぞれ 4 つの double の配列を成長する に追加できるようにするためですArrayList

于 2013-03-13T19:40:01.437 に答える
0

If I get it well, what you want is a collection of an object containing four double.

This can be represented using a List containing some List of Double. This way you can use built in equals and hashcode methods of the Collection api of Java to make operations on your List<Double>. Therefor you can have your code like this :

List<List<Double>> dblList = new ArrayList<List<Double>>();

And add some lists of four Double to it. The main advantage of this methods is that you can check the equality of two of your sublist using the method equals of the List interface.

于 2013-03-13T19:42:39.257 に答える