Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

sortするに一番適したクラスは?

doule [][]型の配列をもっています。すべての要素にintが入っています。これを、最初の列に従って、0,1,2,....のようにソートしたいです。

色々な方法があると思いますが、皆さんはどんなクラスを使っていますか?

13

回答

78658

閲覧

13件の回答

評価

0

最も簡単なのはバブルソートかと思われます。

評価

0

K Zさんありがとうございました。

評価

0

Javaで使ったことはないですが・・。
逆に並びが変わらないことを意識したりすることはあったけど。

"java sort"とかでググッてみては?
java.util.Arrays#sort()とか使えると思うけど。

評価

0

こんにちわ。

doubleにintを入れるのはもったいない気もするのですが。

[][]のオブジェクトを楽にソートするmethodは
今のところないので、自作してがんばってください。

まあさんの書かれている通りArrays#sortで行うのが一般的だと思います。
特殊なソート(Classが特殊、値が特殊など)の場合、比較クラスであるComparatorを継承しておこなうと労力は減ります。

ソートのコストは思っているよりかかるので
適したソートを選択できることを願っています。

評価

0

>doubleにintを入れるのは・・
というので気付いたけど、
一応整数値しか使ってないので問題はないかも?と思いますが・・ないかな?
計算で誤差が出やすくなる筈なので、もったいないというだけでなく、ご注意を!

かも・・

評価

0

こんなんで。

double d = 0x7fffffffffffffffL;
double e = 0x7ffffffffffffffeL;
System.out.println(d - e);

評価

0

皆さんあいrがとうございます。

ちょっと急いでいtsので、すごい乱暴な方法でやっちゃいました。for文とif文を使って、double[][]に一つずつ埋め込みました。

今夜皆さんからの指摘に沿ってやってみます。

評価

0

正確には覚えてないけど、たしか0.1とか非常に苦手だったような・・。

人間が扱うのは大抵10進だし、もっと普通に
System.out.println(0.1 * 0.1);
System.out.println(0.2 * 0.2);
System.out.println(0.3333333333333333 * 3.0);
とか。
0.333...のは5個くらい1個ずつ3を削って見てみるとか。

評価

0

ほんごさん:
「intが入っています」というのは、型としてのintではなく「整数」という意味なんでしょうか?
型としてのintだとすれば、配列をdoubleで取るのは、いろいろな面で無駄です。
整数としてのintだとしても、intもしくはlongで扱えないほどの整数が、本当に必要なんでしょうか。
変数には適切な型を割り当てましょう。

まあさん:
>正確には覚えてないけど、たしか0.1とか非常に苦手だったような・・。
C系の言語(浮動小数点処理)で、必ず意識せねばならないところですよ…。

評価

0

0.1がだったか・・というところですけどね。
浮動小数点フォーマットレベルで見てたりコード書いてたりもしましたけど、何十年も前のことなので厳密なところは忘れちゃいました・・。

評価

0

浮動小数点フォーマット以前に、2進数の話です。

評価

0

フォーマットの中身は2進数で扱われているのです。

評価

0

…?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。