Java - Loại bỏ giá trị trùng trong arraylist(remove duplicates values in an Array )



  • Bài viết sau sẽ hưởng dẫn cách loại bỏ các giá trị bị trùng trong một mảng(arraylist).
  • Bài viết sẽ hướng 2 cách để có loại bỏ các giá trị bị trùng trong một mảng.
  • Cách 1 sẽ loại bỏ giá trị bị trùng nhưng sẽ làm mất đi thứ tự của mảng trước khi loại bỏ giá trị trùng.
  • Cach 2 sẽ loại bỏ giá trị bị trùng và giữ nguyên thứ tự trong mảng.





Cách 1 loại bỏ các giá trị bị trùng trong mảng(arraylist) nhưng mất đi thứ tự trong mảng.
public static ArrayList removeDuplicate(ArrayList arrList)
{
    HashSet h = new HashSet(arrList);
    arrList.clear();
    arrList.addAll(h);
  
    return arrList;
                  
}

VD: Có một mảng là "A", "C", "B", "D", "A", "B" sau khi chạy qua function trên thì kết quả sẽ trả về ngẫu nhiên và không theo thứ tự bảng đầu là "B", "A", "D", "C".

Cách 2 loại bỏ các giá trị bị trùng trong mảng vẫn giữ nguyên thứ thự trong mảng.
public static ArrayList removeDuplicateWithOrder(ArrayList arrList)
{
    Set set = new HashSet();
    List newList = new ArrayList();
    for (Iterator iter = arrList.iterator(); iter.hasNext();) {
        Object element = iter.next();
        if (set.add(element))
            newList.add(element);
    }
    arrList.clear();
    arrList.addAll(newList);

    return arrList;      
              

VD: Có một mảng là "A", "C", "B", "D", "A", "B" sau khi chạy qua function trên thì kết quả sẽ trả theo thứ tự ban đầu "A", "C", "B", "D".

Để dùng các hàm(function) trên bạn nhớ import các thư viện sau:
import java.util.List;
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;  







No comments:

Post a Comment