• 締切済み

配列のソート

Javaのプログラムで、以下のように半径rでソートして並び替えて出力したいのですがどうやって作ればいいのでしょうか? ご教授願います。 0x座標は0 y座標は0 半径は48 1x座標は1 y座標は2 半径は42 2x座標は2 y座標は4 半径は5 3x座標は3 y座標は6 半径は75 4x座標は4 y座標は8 半径は21 0x座標は2 y座標は4 半径は5 1x座標は4 y座標は8 半径は21 2x座標は1 y座標は2 半径は42 3x座標は0 y座標は0 半径は48 4x座標は3 y座標は6 半径は75 半径の値はランダムです 自分では以下まで作りました。なるべく以下の形は変えないようにしたいです。 class Circle{ private int x,y,r,j; private static int i=0; Circle(int px,int py,int pr) { x=px; y=py; r=pr; } public static void show(Circle c){ System.out.println(i+"x座標は"+c.x+" y座標は"+c.y+" 半径は"+c.r); i++; } public static void sort(Circle c){ } } class Sample{ public static void main(String args[]) { Circle[] a=new Circle[5]; for(int i=0;i<a.length;i++) { a[i]=new Circle(i,2*i,(int)(Math.random()*100)); a[i].show(a[i]); } } }

みんなの回答

回答No.1

> どうやって作ればいいのでしょうか? 半径で比較して並び替えてください。 既に書いてある所で直すべき所は ・sort()メソッドはSampleクラスにある方が良いんじゃないかな。 ・Circleクラスから半径を読めないからpublicにするかgetter()作らないとね。

rade
質問者

補足

元の問題はこのプログラムからsortとshowメソッドを削除してあるので、sortとshowメソッドを追加してプログラムを完成せよという問題でした。 class Circle{ private int x,y,r,j; Circle(int px,int py,int pr) { x=px; y=py; r=pr; } class Sample{ public static void main(String args[]) { Circle[] a=new Circle[5]; for(int i=0;i<a.length;i++) { a[i]=new Circle(i,2*i,(int)(Math.random()*100)); } Circle.show(a); Circle.sort(a); Circle.show(a); } } 自分で考えたのですがソートの仕方がわかりませんでした

関連するQ&A