去除List中重复值的方法小结


package com.test;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import org.junit.Test;

/**
* List去除重复值
* @author hyf
* @since 1.7.5
*/
public class TestListRepeat {

    @Test
    public void method1() {
        String[] str = { "jj", "aa", "yy", "jj", "aa", "yy",  "chou" };
        ArrayList list = new ArrayList();
        for (int i = 0; i < str.length; i++) {
            list.add(str[i]);
        }
        System.out.println("method1运行前");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + "  ");
        }
        System.out.println("");

        /**
         * set方法去除list中重复的数据 set中插入重复的值只保留一个
         */
        HashSet set = new HashSet(list);
        list.clear();
        list.addAll(set);
        System.out.println("method1运行后:" + list);
    }

    @Test
    public void method2() {
        String[] str = {"jj", "aa", "yy", "jj", "aa", "yy", "&&", "chou"};
        ArrayList list = new ArrayList();
        for (int i = 0; i < str.length; i++) {
            list.add(str[i]);
        }
        System.out.println("method2运行前");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println("    ");

        /**
         * 去除list中重复的数据
         */
        Set set = new HashSet();
        List newList = new ArrayList();
        for (Iterator iter = list.iterator(); iter.hasNext();) {
            Object element = iter.next();
            if (set.add(element)) {
                newList.add(element);
            }
        }
        list.clear();
        list.addAll(newList);
        System.out.println("method2运行后:" + list);
    }

    @Test
    public void method3() {
        String[] str = { "11", "22", "33", "11", "22", "33", "77", "77", "88", "88", "99" };
        ArrayList list = new ArrayList();
        for (int i = 0; i < str.length; i++) {
            list.add(str[i]);
        }
        System.out.println("method3运行前");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println(" ");

        /**
         * 普通的方法去除list中重复的数据
         */
        for (int i = 0; i < (list.size() - 1); i++) {
            for (int j = list.size() - 1; j > i; j--) {
                if (list.get(j).equals(list.get(i))) {
                    list.remove(j);
                }
            }
        }

        System.out.println("method3运行后:");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
    }
}

你可能感兴趣的:(list)