`
Franciswmf
  • 浏览: 800000 次
  • 性别: 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

    去掉list中的重复对象

    在编程领域,尤其是在Java开发中,我们经常遇到需要处理数据集合,例如列表(List),去除其中的重复元素。"去掉list中的重复对象"这个话题是一个常见的需求,特别是在处理业务数据时,确保数据的唯一性至关重要。这...

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

    在C#编程中,处理列表数据结构是常见的任务之一,特别是在需要查找并处理重复元素的场景下。本篇文章将深入探讨如何在C#中查找列表中的所有重复元素,并提供一个具体的实现示例。 首先,我们需要了解C#中的列表类型...

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

    根据给定文件的信息,本文将详细介绍如何在Java的List集合中去除重复元素的三种方法:使用for循环、使用迭代器以及利用HashSet的特性。 ### 一、使用for循环去除重复元素 这种方法的基本思想是通过双重循环来遍历...

    java 去除重复元素

    在Java编程中,处理数据集合时,我们常常会遇到去除重复元素的需求。这可能是为了保持数据的唯一性,或者为了优化存储和计算效率。本文将详细介绍如何在Java中去除重复元素,主要关注数组和列表这两种常见数据结构。...

    list去掉重复对象

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

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

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

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

    在Java编程中,处理列表(List)数据结构时,有时我们需要检查列表中是否存在重复的元素。本文将详细讲解如何使用Java来判断一个List中是否有重复的元素,并提供一种实用的实现方法。 首先,我们要理解Java中的List...

    java获取list中两元素时间差

    Java 获取 List 中两元素时间差 Java 中获取 List 中两元素时间差是指在 List 集合中计算每个元素之间的时间差异。下面是相关知识点的详细解释: List 数据结构 List 是一种常见的数据结构,在 Java 中有多种实现...

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

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

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

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

    List列表拒绝添加重复信息

    将List转换为Set,可以自动去除重复项。例如: ```python my_list = [1, 2, 3, 2, 4, 3] my_set = set(my_list) ``` 在这个例子中,`my_set`将只包含`{1, 2, 3, 4}`,因为重复的2和3已被移除。 如果我们仍然需要...

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

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

    Python去除列表中重复元素的方法

    在Python编程中,处理列表数据时,我们常常需要去除其中的重复元素。下面将详细介绍几种在Python中去除列表重复元素的方法,并分析它们的优缺点。 1. 使用集合(Set)转换 这是最常见也是最直观的方法。集合是无序...

    如何去掉list集合中重复的元素?.docx

    Set接口下的集合类如HashSet不存储重复元素,可以方便地去除列表中的重复项。将List转换为Set,然后再转换回List即可: ```java List&lt;PenBean&gt; uniquePenBeanList = new ArrayList(new HashSet(penBeanList)); ``` ...

    java去除集合中重复元素示例分享 java去除重复

    在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解和应用这个概念。 Java集合去重示例的需求背景 -----------------------...

    有重复元素的排列问题

    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]); } }

    8594有重复元素的排列问题

    题目 "8594有重复元素的排列问题" 是一道编程题,主要涉及计算机科学中的全排列算法,尤其是处理有重复元素的情况。全排列是指从n个不同元素中取出m个元素,按照一定的顺序排列起来,形成的所有可能的排列组合。在本...

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

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

Global site tag (gtag.js) - Google Analytics