1. 程式人生 > 其它 >Java中ArrayList去重方法

Java中ArrayList去重方法

方法一:

該方法不需要重新建立新的陣列可以直接遍歷

public class TestCopy {
    public static void main(String[] args){
        ArrayList<String> list = new ArrayList<>();
        list.add("張三");
        list.add("李四");
        list.add("王五");
        list.add("趙六");
        list.add("田七");
        list.add("朱八");
        list.add(
"王一"); list.add("李四"); list.add("王五"); list.add("王五"); list.add("王一"); for (int i = 0; i < list.size(); i++) { // 取出一個元素 String val = list.get(i); System.out.println("i:"+val+"\t"); // 迴圈取出str元素之後的其他元素進行對比 for
(int j = i+1; j < list.size(); j++) { String s = list.get(j); System.out.print("j:"+s); // 比較兩個元素是否相等 if (val.equals(s)){ // 相等則移除該元素 list.remove(val); // 由於移除後其他元素前移,所以需要重新--回到原位
i--; } } System.out.println("\n===================="); } System.out.println("去重後:"+list); } }

方法二:

建立兩個陣列,一個是舊陣列,存著沒去重的值;一個是新陣列,存去重後的值

public class TestCopy {
    public static void main(String[] args){
        // 建立兩個陣列一個存一個取,一個是去重前的陣列,一個是去重後的陣列
        ArrayList<String> list = new ArrayList<>();
        ArrayList<String> list1 = new ArrayList<>();
        list.add("張三");
        list.add("李四");
        list.add("王五");
        list.add("趙六");
        list.add("田七");
        list.add("朱八");
        list.add("王一");
        list.add("李四");
        list.add("王五");
        for (String s : list) {
            // 取出原陣列中的元素進行對比,如果新陣列中存在就不存,不存在存入新陣列中
            if (!list1.contains(s)){
                // 如果新陣列中存在則不存
                list1.add(s);
            }
        }
        System.out.println("去重前:"+list);
        System.out.println("去重後:"+list1);
    }
}

方法三:

使用set去重

public class TestCopy {
    public static void main(String[] args){
        ArrayList<String> list = new ArrayList<>();
        LinkedHashSet<String> set = new LinkedHashSet<>();
        list.add("張三");
        list.add("李四");
        list.add("王五");
        list.add("趙六");
        list.add("田七");
        list.add("朱八");
        list.add("王一");
        list.add("李四");
        list.add("王五");
        // 儲存到set中去重
        for (String s : list) {
            set.add(s);
        }
        list.clear();
        for (String s : set) {
            // 再將set中的值儲存進list中,方便使用
            list.add(s);
        }
        System.out.println(list);
    }
}