package com.demo2do.core.utils;

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

/**
 * 常用工具类
 *
 * @author David
 */
public abstract class CommonUtil {

    /**
     * 去重列表
     *
     * @param list  原始列表
     * @return      去重后的列表
     */
    public static <T> List<T> deduplicate(final List<T> list) {
        if (list == null || list.size() == 0) {
            return new ArrayList<T>();
        }

        Set<T> set = new HashSet<T>();
        for (T element : list) {
            if (!set.contains(element)) {
                set.add(element);
            }
        }

        return new ArrayList<T>(set);
    }

    /**
     * 合并并去重两个列表
     *
     * @param one      列表一
     * @param another  列表二
     * @return         去重后的列表
     */
    public static <T> List<T> deduplicatedMerge(final List<T> one, final List<T> another) {
        if (one == null && another == null) {
            return null;
        }
        if (one != null && another == null) {
            return CommonUtil.deduplicate(one);
        }
        if (one == null) {
            return CommonUtil.deduplicate(another);
        }

        Set<T> set = new HashSet<T>(another);
        set.removeAll(one);

        List<T> result = new ArrayList<T>(CommonUtil.deduplicate(one));
        result.addAll(set);
        return result;
    }
}

@@ -245,17 +245,16 @@
 am list 
- 
 %E5%8E%9F%E5%A7%8B%E5%88%97%E8%A1%A8%0A   
@@ -265,21 +265,16 @@
 @return 
-     
 %E5%8E%BB%E9%87%8D%E5%90%8E%E7%9A%84%E5%88%97%E8%A1%A8%0A 
@@ -714,17 +714,16 @@
 one     
- 
 %E5%88%97%E8%A1%A8%E4%B8%80%0A    
@@ -740,17 +740,16 @@
 another 
- 
 %E5%88%97%E8%A1%A8%E4%BA%8C%0A    
@@ -759,24 +759,16 @@
 @return 
-        
 %E5%8E%BB%E9%87%8D%E5%90%8E%E7%9A%84%E5%88%97%E8%A1%A8%0A 

reformat common utility