3 回答
TA贡献1868条经验 获得超4个赞
这是因为您正在打印列表而不是您的countOccurence
方法的结果。要解决这个问题 -
将结果存储countOccurence
在变量中
int count = countOccurence("Go", y);
在下一行打印计数。
System.out.println(count);
TA贡献1780条经验 获得超3个赞
只是一个可选的解决方案。在 中Java8,您可以Stream API通过计数出现次数来做到这一点。
Map<String, Long> counts =
listOfString.stream().collect(
Collectors.groupingBy(
Function.identity(), Collectors.counting()));
和结果代码;
public class Remove {
public static void main(String[] args) {
ArrayList< String > listOfString = new ArrayList < > ();
listOfString.add("Go");
listOfString.add("Home");
listOfString.add("Go");
listOfString.add("Home");
Map<String, Long> counts =
listOfString.stream().collect(
Collectors.groupingBy(
Function.identity(), Collectors.counting()));
System.out.println(counts.get("Go"));
System.out.println(counts.get("Home"));
}
}
TA贡献1802条经验 获得超4个赞
打印事件:
System.out.println("Occurence of 'Go' is " + countOccurence("Go", y));
你也应该删除的变化i <= t.size();来i < t.size();,以避免IndexOutOfBounds错误。
public static void main(String[] args) {
ArrayList<String> y = new ArrayList<>();
y.add("Go");
y.add("Home");
y.add("Go");
y.add("Home");
System.out.println(y);
System.out.println("Occurence of 'Go' is " + countOccurence("Go", y));
}
public static int countOccurence(String y, ArrayList<String> t) {
int count = 0;
for (int i = 0; i < t.size(); i++) {
if (y.equalsIgnoreCase(t.get(i))) {
count++;
}
}
return count;
}
添加回答
举报