JAva list繰返し値の除去

912 ワード

2つの方法、1つは無順序で、1つは元のlistの要素の順序を維持します.
 
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);    
}