Java クラスを使ったソート
Javaで隣接交換法を用いて配列dataを昇順に並び替え、出力するプログラムを作成する。
ただし、ループ処理には、int型の変数は使わず、以下のCounterクラスを使用する。
という課題が出て、とり組んでみたのですが所々よく分からないので、お力添えしていただければと思います。
課題には下記のような条件が書いてありました。
配列data={54,76,32,89,45,11,8,54,29,67};
[クラス]
Counter
[インスタンス変数]
int型の値を保持するcount
[コンストラクタ]
引数で渡された値を初期値としてインスタンス変数に設定する。
引数を省略された場合、ゼロを設定する。
[メソッド]
increment
値に1加算する
decrement
値に1減算する
compareTo
以下の処理を行う
Counterの保持している値が引数に指定された値と
等しい場合、値0を返す。
Counterの保持している値が引数に指定された値より
小さい場合、0より小さい値を返す。
Counterの保持している値が引数に指定された値より
大きい場合、0より大きい値を返す。
get
Counterの保持している値を添え字として、
引数で渡された配列の要素を取得します。
set
Counterの保持している値を添え字として、
第1引数で渡された配列に第2引数で渡された値を設定します。
以下組んだものです。
----
class Counter {
int count = 0;
Counter(int count) {
this.count = count;
}
Counter() {
this.count = 0;
}
public int get(int[] data) {
return this.count;
}
public void set(int[] data, int count) {
this.count = count;
}
public void increment() {
this.count = count + 1;
}
public void decrement() {
this.count = count - 1;
}
public int compareTo() {
return count;
}
}
public class Lesson09 {
public static void main(String args[]) {
Counter counter = new Counter(0);
int[] data = {54, 76, 32, 89, 45, 11, 8, 54, 67};
counter.get(data);
counter.set(data, 0);
}
}
----
とりあえず、compareToとsetとgetの部分をどう記述していいのかがよく分かりません。
よろしくお願いします。
お礼
ありがとうございます。 参考になりました。