【发布时间】:2017-09-20 14:59:24
【问题描述】:
我是 Android 和 Java 编程的新手。我对这种方法有疑问。 我正在尝试计算相同的字符串出现了多少次。
例如:输入列表l,输出列表m
列表l:
- 字符串1
- 字符串1
- 字符串2
- 字符串2
- 字符串2
列表m:
- 2x 字符串1
- 3x 字符串2
我的清单:
List<String> l = new ArrayList<>();
List<String> m = new ArrayList<>();
我的方法:
public String Generuj() {
String generator = "";
int x = 0;
int j = 0;
if (l.size() > 0) {
m.add(l.get(0));
for (int i = 1; i < l.size(); i++) {
while (j < l.size() && m.get(m.size() - 1).equals(l.get(j))) {
x++;
j++;
}
m.add("\n" + x + "x " + l.get(i));
}
}
for (int i = 0; i < m.size(); i++) {
generator = generator.concat(m.get(i));
}
return generator;
}
提前感谢您的帮助。
【问题讨论】:
-
您可以使用 HashMap 来记录字符串的出现次数,如此链接 stackoverflow.com/questions/4363665/…
-
如果列表 1 包含
a, a, b, b, b, a应该是什么结果?应该是2x a, 3x b, 1x a还是3x a, 3x b? -
为什么会有
m.add(l.get(0))? -
你的问题究竟是什么?