我的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 ???;
}
答案 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语法,请致歉。流功能实际上只是说'带走所有参议员,按党派他们然后再计算'。关键是你要将一张地图从派对返回到代表参议员人数的整数。