0

分数を に入れる方法が必要ArrayListです。ただし、後で比較して並べ替えることができる方法がわからないため、問題が発生しています。

注: 私は 4 つ以上の分数を使用しますが、(可能であれば) 同等のクラスを使用して 2 つ以上の分数を使用する方法がよくわかりません。

例: 1/1 、 3/4 、 7/4 、 2/8 を入力する必要があります

次に、それらを(リストを使用して)最小から最大に並べ替える必要があります。

どんな助けでも大歓迎です。

4

3 に答える 3

2

分子と分母の 2 つの変数を格納する Fraction というクラスを作成します。その後、Fractions の ArrayList を作成できます。

それらを簡単に並べ替えたい場合は、実装することをお勧めしますComparable

于 2014-02-16T14:08:55.280 に答える
1

最初に分数を浮動小数点値として取得する方法と、分数値を表すクラスを作成して別のクラスにInterface Comparatorを実装する方法の 2 つの方法があります。次に、コレクションを使用して並べ替えます。

于 2014-02-16T14:20:19.630 に答える
1
public class Fraction implements Comparable<Fraction> {
   private int x1, x2; // implement get/set

   public int compareTo(Fraction o) {
       double tmp = Math.abs((double)x1 / x2 - (double)o.x1 / o.x2);
       if (tmp < 0) return -1;
       if (tmp < 1e-9) return 0;
       return 1;
   }
}

今:

ArrayList<Fraction> f;
Collections.sort(f);
于 2014-02-16T14:25:29.760 に答える