如何返回多个条件?

时间:2015-05-15 03:23:09

标签: java

我的for循环结束时应该返回什么?我试图通过以下方式显示所有三方numDemocrat,numRepulican和numIndepent的添加结果 计算然后打印民主人士的数量(派对是" D"), 共和党人(党是" R")和独立党(党是其他任何东西)。 我现在正在循环遍历parseMembersOfCongress返回的MemberOfCongress ArrayList,并计算每种派对类型的数量。 同样在我的循环中,我需要检查当前成员属于哪一方并增加适当的变量。循环完成后,然后打印总计。

public void printPartyBreakdownInSenate() 
    {

    CongressDataFetcher.fetchSenateData(congressNum);
    } 

    {
    ArrayList<MemberOfCongress> parseMembersOfCongress; String jsonString;

    }

    {
     System.out.println("Number of Members of the Senate of the " + "&congressNum=" + "?chamber=");
    }

    public String[]  
    {
         int numDemocrats = 0;
         int numRepblican = 0;
         int numIndepent = 0;


        ArrayList<MemberOfCongress> members;
        for (MemberOfCongress memberParty : members) {

             if (memberParty.getParty() == "D" ) {
                 numDemocrats++;
             }
             else if (memberParty.getParty() == "R" ){
                       numRepblican++;
                 }
                 else if (memberParty.getParty() == "null"){
                           numIndepent++;
                 }
         }



        return ???;

}

2 个答案:

答案 0 :(得分:0)

首先我99%肯定你不能返回多个值,除非你返回数组,数组列表或地图。

但是你可以做的解决方案之一就是下面的事情。

1)。返回一个Party成员的String数组。

2)。将2D数组映射名称返回到age或类似的东西。

3)。使用映射到名称的自定义信息类返回数据的哈希映射。

4)。使用getter可以及时获取不同的数据或者同时获取所有数据。

答案 1 :(得分:0)

Java(与大多数编程语言一样)只允许来自方法的单个返回值。这有很多很好的理由。

如果您需要返回多个值,那么您将需要一个单独的类,您的方法可以为其返回对实例的引用。

例如,在您的情况下:

public enum Party {
    REPUBLICAN, DEMOCRAT, OTHER;
}

public Map<Party, Integer> senatorsByParty(List<MemberOfCongress> senators) {
    return senators.stream()
        .collect(Collectors.groupingBy(MemberOfCongress::getParty, Collectors.counting()));
}

如果您不了解Java 8语法,请致歉。流功能实际上只是说'带走所有参议员,按党派他们然后再计算'。关键是你要将一张地图从派对返回到代表参议员人数的整数。