JAva list繰返し値の除去
912 ワード
2つの方法、1つは無順序で、1つは元のlistの要素の順序を維持します.
Hastset hashcodeにより重複するか否かを判断し、データは重複しない
Hashsetのaddメソッドで同じデータが追加されたかどうかを判断し、同じデータがすでに存在する場合は追加しない
Hastset hashcodeにより重複するか否かを判断し、データは重複しない
/** List order not maintained **/
public static void removeDuplicate(ArrayList arlList)
{
HashSet h = new HashSet(arlList);
arlList.clear();
arlList.addAll(h);
}
Hashsetのaddメソッドで同じデータが追加されたかどうかを判断し、同じデータがすでに存在する場合は追加しない
/** List order maintained **/
public static void removeDuplicateWithOrder(ArrayList arlList)
{
Set set = new HashSet();
List newList = new ArrayList();
for (Iterator iter = arlList.iterator(); iter.hasNext(); )
{
Object element = iter.next();
if (set.add(element)) newList.add(element);
}
arlList.clear();
arlList.addAll(newList);
}