如何打印前5个男性名字

时间:2014-10-02 03:02:14

标签: java sorting if-statement

我列出了他们的性别名称以及有多少人拥有此名称。 我的程序根据有多少人具有相同的名称,按降序打印出名称。我正在尝试创建的Top函数。假设采用该程序并在名称列表中打印前5个make。

**名单**

Isabella F 22822

Jacob M 22011

Sophia F 20566

Ethan M 17956

Emma F 17277

Michael M 17244

Jayden M 17101

William M 16979

Olivia F 16959

Alexander M 16701

**我想要的是什么**

Jacob M 22011

Ethan M 17956

Michael M 17244

Jayden M 17101

William M 16979

**得到排序已经确定只需要打印前5个男性***

Top = top(5, M);

Collections.sort(oneName, new OneNameCountCompare());
for(OneName b: oneName) {
    System.out.println(Top.b.toString());
}

    }

String top(int many, char sex) {
    String order = "";
    for (sex = sex ; int i < many; i++) {
        order = i; 
    }
    return order;
}        

1 个答案:

答案 0 :(得分:0)

当您调用

Top = top(5, M);

您的代码与您想要的内容没有任何关系。您正在传递M而不是'M'作为字符。除非你在某处将M定义为char,否则你的代码将无法编译(尽管你的IDE会告诉你)。

之后,您将创建一个名为order的字符串。很公平。但是你的循环毫无意义。 sex = sex完全没有效果(您正在将sex的内容复制到sex)。然后我相信您正试图循环i many次。我会在这里为您提供代码,因为我相信这可能有所帮助:

for(int i=1; i<=many; i++){...}

接下来你要做的是将Integer复制到String中。我想你应该回到基础并阅读java基础教程。 Here是链接,以防您不确定要查找的内容。剧透:它会像:

String.valueOf(i);

最后你返回order。在您阅读上面的教程后,我会让您知道这是什么。