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
しかし、サイズが大きくなるにつれて、パフォーマンスはますます悪化します。この実装に問題はありますか? または、パフォーマンスの点でより良いものはありますか?