【发布时间】:2015-09-30 12:18:48
【问题描述】:
我有这个
String array[] = {"test","testing again", "test"};
我想标记和删除重复项。这是我需要的输出:
2x test
testing again
有人可以帮我做这件事吗? 我已经尝试过使用 Set,但它似乎无法识别字符串何时已经存在。
这是我的代码:
Set addons = new HashSet<String>();
final String[] arr ={"test","testing again", "test"};
for (int i = 0; i < arr.length; i++) {
Log.d(TAG, "contains adding " + arr[i]);
if (addons.contains(arr[i])) {
//never enters here
Log.d(TAG, "contains " + arr[i]);
addons.remove(arr[i]);
addons.add("2 x " + arr[i]);
} else {
addons.add("1 x " + arr[i]);
}
}
【问题讨论】:
-
@agad 如果可行,你能提供一个代码示例的答案吗?
-
使用调试器也是个好主意(在
if语句中查看您的设置).. -
如果您的集合包含
"2 x test",它将无法匹配contains("test")。您可以使用Map<String,Integer>来计算每个字符串的出现次数。 -
通过这篇文章,您可以获得具有唯一元素的列表:stackoverflow.com/questions/14656208/array-of-unique-elements
标签: java android arrays string set