我尝试使用HashSet
从ArrayList<StringBuilder>
.
例如这里是一个ArrayList
,每一行都是一个StringBuilder
对象。
"u12e5 u13a1 u1423"
"u145d"
"u12e5 u13a1 u1423"
"u3ab4 u1489"
我想得到以下信息:
"u12e5 u13a1 u1423"
"u145d"
"u3ab4 u1489"
我目前的实现是:
static void removeDuplication(ArrayList<StringBuilder> directCallList) {
HashSet<StringBuilder> set = new HashSet<StringBuilder>();
for(int i=0; i<directCallList.size()-1; i++) {
if(set.contains(directCallList.get(i)) == false)
set.add(directCallList.get(i));
}
StringBuilder lastString = directCallList.get(directCallList.size()-1);
directCallList.clear();
directCallList.addAll(set);
directCallList.add(lastString);
}
ArrayList
但随着规模的增长,性能变得越来越差。这个实现有什么问题吗?或者在性能方面你有更好的吗?