【问题标题】:Sorting and Comparing Object with BubbleSort使用 BubbleSort 对对象进行排序和比较
【发布时间】:2012-09-20 13:48:04
【问题描述】:

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

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

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

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

输入格式 输入由 N +1 行组成。线上到 - 1 代表存在的用户数 网站“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 

【问题讨论】:

  • 我建议你从一个简单的程序开始,然后添加一些功能让它做更多的事情,直到它完成整个事情。我不会想太多。
  • 理论太多了。添加您认为导致问题的代码 sn-ps

标签: java sorting object compare


【解决方案1】:

除了上面的帖子所说的,让你的 MukabuMember 实现Comparable<MukabuMember> 接口。然后用您解释的比较过程覆盖public int compareTo(MukabuMember m)

完成后,您可以调用 Arrays.sort(yourlist),它会按照您的方式排序。

【讨论】:

  • 你不认为实现冒泡排序并不意味着使用ComparableCollections.sort(),尤其是它们基于合并排序吗?显然这是家庭作业,所以你在做这样的回答是在做坏事。给你一个心理-1。
  • 是的,他应该在他自制的 BubbleSort 中使用覆盖的 compareTo,而不是 Arrays.sort
【解决方案2】:

有一个类(比如 MukabuMember),其中包含你提到的所有属性作为字段。现在有一个主类并为 MukabuMember 类创建 N 个对象。使用 MukabuMember 类作为参数创建一个列表。使用迭代器遍历列表进行排序。您需要三个比较(以嵌套的 if 方式)来根据您的要求进行排序,而不是单个比较 stmt。这应该足够了。

【讨论】:

    【解决方案3】:

    您可以按照以下步骤操作:

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

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

    • obj1.compareTo(obj2) - 如果 obj1 > obj2,则返回 10 如果 obj1 == obj2 和 -1 如果 obj1
    • obj1.equals(obj2) - 如果 obj1 == obj2 则返回 true

    【讨论】:

    • 很抱歉,但在我的项目/工作中,我禁止使用 Comparable 接口。只是使用冒泡排序..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多