0

我的 Java 程序有问题。大家能帮帮我吗.. 这是程序。 简介 在“MukaBuku”网站上,每个用户都拥有以下属性:

  1. 姓名,用户的姓名
  2. 帖子,发表作品的多篇帖子
  3. 朋友,一些现有的朋友

对财产,C先生想要某种DOWN如下:

  1. 根据大量现有好友比较用户。如果有两个好友的好友数相同的用户,则继续积分排序的过程 2
  2. 根据存在的帖子数比较用户。如果有两个用户拥有相同数量的帖子排序过程,则继续第 3 点
  3. 最后是根据他们的名字在字母表中比较两个用户。

输入格式 输入由 N +1 行组成。第-1 行代表网站“MukaBuku”中存在的用户数,其中1 ≤ N ≤ 1000。然后在第-2 行到第1 行 输出格式 输出由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 方式)来根据您的要求进行排序,而不是单个比较 stmt。这应该足够了。

于 2012-09-20T13:55:45.470 回答
1

以下是您可以遵循的步骤:

  1. 创建一个名为 MukabukuMember 的类,其中包含字段namenumberOfPosts * numberOfFriends *
  2. 让这个类实现Comparable接口。这个接口有一个方法compareTo,你可以在其中编写所有的比较逻辑。
  3. Mkae 确保您还覆盖了 MukabukuMember 类中的equalshashCode方法。您需要特别注意的是确保确定两个 MukabukuMember 类相等的逻辑在 compareTo 和 equals 中是相同的

完成上述三个步骤后,您可以将这些对象存储在List 中并对其进行迭代。在每次迭代中,您可以简单地测试MukabukuMember类的两个对象,例如obj1obj2,如下所示:

  • obj1.compareTo(obj2) -如果 obj1 > obj2返回1 ;0如果 obj1 == obj2 和-1如果 obj1 < ob
  • obj1.equals(obj2) - 如果obj1 == obj2返回真
于 2012-09-20T14:30:57.373 回答