0

Java プログラムに問題があります。皆さん助けてください.. これがプログラムです。 はじめ に ウェブサイト「MukaBuku」では、すべてのユーザーが次のプロパティを持っています。

  1. 名前、ユーザーの名前
  2. 投稿、作品数掲載投稿
  3. 友達、既存の友達の数

物件のうち、Cさんは次のように何らかのダウンを望んでいます。

  1. 多数の既存の友達に基づいてユーザーを比較します。同じ数のフレンドを持つユーザーが 2 人いる場合、ポイントの並べ替えプロセスを続行します 2
  2. 存在する投稿の数に基づいてユーザーを比較します。2 人のユーザーが同じ量の投稿の並べ替えプロセスを行っている場合は、ポイント 3 に進みます。
  3. 最後に、アルファベットの名前に基づいて 2 人のユーザーを比較します。

入力形式 入力は N +1 行で構成されます。行の - 1 は Web サイト「MukaBuku」に存在するユーザーの数を表し、ここで 1 ≤ N ≤ 1000 です。 行 - 2 から行 出力形式 出力は N 行で構成されます。

入力例:

6 
Budi 13 14,
Andi 90 87,
Fawwaz 39 109, 
Bayu 41 9, 
Ani 77 77, 
Ano 77 77, 

出力:

Total Sorting : 8 
Fawwaz 109 39 
Andi 87 90 
Ano 77 77 
Ani 77 77 
Budi 14 13 
Bayu 9 41 
4

3 に答える 3

2

上記の投稿に加えて、MukabuMemberにComparable<MukabuMember> インターフェースを実装してもらいます。public int compareTo(MukabuMember m)次に、説明した比較プロセスでオーバーライドします。

これが完了したら、Arrays.sort(yourlist)を呼び出すことができ、それはあなたのやり方でソートされます。

于 2012-09-20T14:09:46.580 に答える
1

フィールドとして言及したすべてのプロパティを持つクラス(MukabuMemberなど)を用意してください。ここで、メイン クラスを作成し、MukabuMember クラスの N 個のオブジェクトを作成します。MukabuMember クラスをパラメータとしてリストを作成します。並べ替えのためにリストをトラバースするには、反復子を使用します。要件に従ってソートするには、単一の比較ステートメントの代わりに、(ネストされた if 方式で) 3 つの比較が必要です。これで十分です。

于 2012-09-20T13:55:45.470 に答える
1

次の手順を実行できます。

  1. フィールドnamenumberOfPosts * numberOfFriends *を持つ MukabukuMember というクラスを作成します。
  2. このクラスにComparableインターフェースを実装させます。このインターフェースには、すべての比較ロジックを記述できる単一のメソッドcompareToがあります。
  3. MkabukuMember クラスのequalsメソッドとhashCodeメソッドもオーバーライドしていることを確認してください。特に注意が必要なのは、2 つの MukabukuMember クラスが等しいことを判断するロジックが、compareTo と equals の両方で同じであることを確認することです。

上記の 3 つの手順が完了したら、これらのオブジェクトをList内に格納し、それを反復することができます。各反復内で、MukabukuMemberクラスの 2 つのオブジェクト ( obj1obj2など)を次のように簡単にテストできます。

  • obj1.compareTo(obj2) - obj1 > obj2 の場合は1を返します。obj1 == obj2 の場合は0 、 obj1 < ob の場合は-1
  • obj1.equals(obj2) - obj1 == obj2の場合に true を返します
于 2012-09-20T14:30:57.373 に答える