`
Franciswmf
  • 浏览: 782400 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

ArrayTools 去除List中重复的元素

 
阅读更多
package com.tools;

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

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @desc 去除重复的List元素
 */
public class ArrayTools {
	protected static final Logger logger = LoggerFactory.getLogger(ArrayTools.class);

	private static final char SEPARATOR = '|';
	public static <T> List<T> removeDuplication(List<T> list, String... keys) {
		if (list == null || list.isEmpty()) {
			logger.info("List is empty.");
			return list;
		}

		if (keys == null || keys.length < 1) {
			logger.info("Missing parameters.");
			return list;
		}

		for (String key : keys) {
			if (StringUtils.isBlank(key)) {
				logger.info("Key is empty.");
				return list;
			}
		}

		List<T> newList = new ArrayList<T>();
		Set<String> keySet = new HashSet<String>();

		for (T t : list) {
			StringBuffer logicKey = new StringBuffer();
			for (String keyField : keys) {
				try {
					logicKey.append(BeanUtils.getProperty(t, keyField));
					logicKey.append(SEPARATOR);
				} catch (Exception e) {
					e.printStackTrace();
					return list;
				}
			}
			if (!keySet.contains(logicKey.toString())) {
				keySet.add(logicKey.toString());
				newList.add(t);
			} else {
				logger.info(logicKey + " has duplicated.");
			}
		}
		return newList;
	}

}
分享到:
评论

相关推荐

    数组,List 重复元素统计数量,找出唯一的元素

    int[] arr = { 1, 2, 2, 3, 3, 4, 4, 4, 1, 5, 6, 6, 6 }; 两种不同方式(使用map和list两种方式)获得一下输出结果 数组和list 可以使用相同的方法,自己测试可以 控制台输出 ...数组中唯一的元素是:5

    利用Set集合去除List集合中重复元素、字符串中的重复子串

    一:Set集合去掉List集合中重复元素 public static void main(String[] args) { //利用set集合 去除ArrayList集合中的重复元素 ArrayList list = new ArrayList(); list.add("1"); list.add("1"); list.add("2...

    list去掉重复对象

    一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。

    去除链表重复元素-Java 实现

    在Java中,去除单链表中的重复元素可以通过使用哈希集合(HashSet)来实现,该集合用于存储已经遍历过的元素。在遍历链表的过程中,我们将每个元素与集合中的元素进行比较,如果发现重复,则删除链表中的该元素。 ...

    Python实现列表删除重复元素的三种常用方法分析

    给定一个列表,要求删除列表中重复元素。 listA = ['python','语','言','是','一','门','动','态','语','言'] 方法1,对列表调用排序,从末尾依次比较相邻两个元素,遇重复元素则删除,否则指针左移一位重复上述...

    C#查找列表中所有重复出现元素的方法

    主要介绍了C#查找列表中所有重复出现元素的方法,涉及C#针对列表操作的技巧,非常具有实用价值,需要的朋友可以参考下

    python 寻找list中最大元素对应的索引方法

    以上这篇python 寻找list中最大元素对应的索引方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python numpy和list查询其中某个数的个数及定位方法...

    Python list列表中删除多个重复元素操作示例

    本文实例讲述了Python list列表中删除多个重复元素操作。分享给大家供大家参考,具体如下: 我们以下面这个list为例,删除其中所有值为6的元素: l=[9,6,5,6,6,7,8,9,6,0] 首先尝试remove方法: l.remove(6) ...

    在list集合中输入元素,去除重复的元素并输出

    在list集合中输入元素,去除重复的元素并输出 1.使用for i循环去重 2.使用迭代器去重 3.使用HashSet特性去重

    有重复元素的排列问题

    Description 设集合R={r1,r2,...,rn}... if (Findsame(list,k,i))//判断第i个元素是否在list[k,i-1]中出现过 continue; Swap (list[k], list[i]); PermExcludeSame(list, k+1, m); Swap (list[k], list[i]); } }

    Python实现去除列表中重复元素的方法小结【4种方法】

    本文实例讲述了Python实现去除列表中重复元素的方法。分享给大家供大家参考,具体如下: 这里一共使用了四种方法来去除列表中的重复元素,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:...

    java获取list中两元素时间差

    java获取list中两元素时间差

    8594有重复元素的排列问题

    8594 有重复元素的排列问题 ... if (Findsame(list,k,i))//判断第i个元素是否在list[k,i-1]中出现过 continue; Swap (list[k], list[i]); Permpp(list, k+1, m); Swap (list[k], list[i]); } }

    Java判断List中有无重复元素的方法

    今天小编就为大家分享一篇Java判断List中有无重复元素的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    删除List中的重复值

    删除List中的重复值 方法一:循环元素删除 // 删除ArrayList中重复元素 public static void removeDuplicate(List list) { for ( int i = 0 ; i &lt; list.size() - 1 ; i ++ ) { for ( int j = list.size() - ...

    List去除重复值.wps

    在List中,通过方法去除其中存在相同的值

    Python对List中的元素排序的方法

    首先定义一个compare函数: ...要求ListA中的元素有value这个属性才行,当然也可以把value换成ListA中的元素的其他共有属性也可以。感觉和Java差不多。 总结 以上所述是小编给大家介绍的Python对List中的元素排

    list去重.txt

    在java的list中由于经常存在重复的元素,需要去重,这个时候要用到list去重,将一些不必要展现出来的元素展现出来

    8594 有重复元素的排列问题

    if (Findsame(list,k,i))//判断第i个元素是否在list[k,i-1]中出现过 continue; Swap (list[k], list[i]); Permpp(list, k+1, m); Swap (list[k], list[i]); } } 作者 zhengchan ps;正确运行算法

    去掉list中的重复对象

    NULL 博文链接:https://xuedong.iteye.com/blog/1157186

Global site tag (gtag.js) - Google Analytics