分数を に入れる方法が必要ArrayList
です。ただし、後で比較して並べ替えることができる方法がわからないため、問題が発生しています。
注: 私は 4 つ以上の分数を使用しますが、(可能であれば) 同等のクラスを使用して 2 つ以上の分数を使用する方法がよくわかりません。
例: 1/1 、 3/4 、 7/4 、 2/8 を入力する必要があります
次に、それらを(リストを使用して)最小から最大に並べ替える必要があります。
どんな助けでも大歓迎です。
分数を に入れる方法が必要ArrayList
です。ただし、後で比較して並べ替えることができる方法がわからないため、問題が発生しています。
注: 私は 4 つ以上の分数を使用しますが、(可能であれば) 同等のクラスを使用して 2 つ以上の分数を使用する方法がよくわかりません。
例: 1/1 、 3/4 、 7/4 、 2/8 を入力する必要があります
次に、それらを(リストを使用して)最小から最大に並べ替える必要があります。
どんな助けでも大歓迎です。
分子と分母の 2 つの変数を格納する Fraction というクラスを作成します。その後、Fractions の ArrayList を作成できます。
それらを簡単に並べ替えたい場合は、実装することをお勧めしますComparable
。
最初に分数を浮動小数点値として取得する方法と、分数値を表すクラスを作成して別のクラスにInterface Comparatorを実装する方法の 2 つの方法があります。次に、コレクションを使用して並べ替えます。
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);