`

对集合按字段去重

    博客分类:
  • java
 
阅读更多
package org.ilp.utils;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;

/**
 * 
* @ClassName: CollectUtil
* @Description: TODO(集合处理工具类)
* @author 彭保卫
* @date 2017年6月1日 下午5:19:34
*
 */
public class CollectUtil {
	/**
	 * 
	* @Title: getNewData
	* @Description: TODO(按字段去重)
	* @param @param results 原有集合
	* @param @param fields     去重字段
	* @param @return    设定文件
	* @return List<?>     去重后的结果集
	* @throws
	* @author 彭保卫
	 */
	  public  static List<?> getNewData(List<?> results,String... fields) {
			 List<Object> list = new  ArrayList<> ();
			Hashtable<String, Integer> mapper = new Hashtable<String, Integer>();
			 for (Object object : results) {
				  try {
					  Class<?> clazz = Class.forName(object.getClass().getName());
					  StringBuffer key=new StringBuffer();
					  for (String fieldName : fields) {
						     String  methodName="get"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1, fieldName.length());
						     Method declaredMethod = clazz.getDeclaredMethod(methodName);
						     String invoke =(String) declaredMethod.invoke(object);
						     key.append(invoke);
					   }
					   String keyValue=key.toString();
					   Integer integer = mapper.get(keyValue);
					  if(integer==null){
					    	 list.add(object);
					          int index = list.indexOf(object);
					          mapper.put(keyValue, index);
					     }else{
					    	 int intValue = integer.intValue();
					    	 list.remove(intValue);
					    	 list.add(intValue, object);
					     }
				    } catch (Exception e) {
					   e.printStackTrace();
				  }
			  }
		return list;
		}

}

 

分享到:
评论

相关推荐

    List集合多个复杂字段判断去重的案例

    List集合多个复杂字段判断去重的案例 在 Java 编程中,List 集合是我们常用的数据结构之一。当我们需要对 List 集合进行去重操作时,通常的做法是将其转换为 Set 集合,因为 Set 集合不允许重复元素。但是,事情并...

    如何实现java8 list按照元素的某个字段去重

    在Java编程中,有时我们需要处理列表(List)数据结构,并且在处理过程中,可能需要根据元素的特定字段去重。Java 8引入了Stream API,它提供了强大的数据处理能力,包括去重操作。本篇文章将详细讲解如何使用Java 8...

    Java中List集合对象去重及按属性去重的8种方法

    以上就是对Java中List集合对象去重及按属性去重的8种方法的详细解释。每种方法都有其适用场景,开发者应根据实际需求选择合适的方法。在实现这些方法时,要确保对象的`equals()`和`hashCode()`方法正确实现,以保证...

    java jsonarray 踢重 去重操作

    在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...

    SQLSERVER去重语句.docx

    1. 单字段去重查询: 当我们只需要找出某个特定字段(如`Parameter`)重复的记录时,可以使用以下查询语句: ``` SELECT * FROM Table WHERE Parameter IN (SELECT Parameter FROM Table GROUP BY Parameter ...

    java删除重复字段

    ### Java删除重复字段知识点解析 在本篇文章中,我们将深入探讨如何使用Java编程语言来删除数组中的重复元素。示例代码提供了一种方法,通过利用`HashMap`数据结构的特性来实现这一目标。 #### 一、问题背景 假设...

    利用Distinct()内置方法对List集合的去重问题详解

    "利用Distinct()内置方法对List集合的去重问题详解" 知识点1:List&lt;T&gt; 集合的去重问题 List&lt;T&gt; 集合是泛型链表,实现了IEnumerable接口,规定了Distinct方法。但是,Distinct方法不能直接应用于引用类型的集合去重...

    【IT十八掌徐培成】Java基础第24天-05.内连接-外链接-集合-去重查询.zip

    此外,当我们需要基于特定字段去重时,可以自定义比较器(Comparator)来实现更复杂的去重逻辑。 总结,Java中的内连接和外连接帮助我们在数据库中高效地处理相关数据,集合提供了一种灵活的数据组织方式,而去重...

    hibernate criteria的使用方法

    上述代码通过 `Restrictions.like()` 方法创建了一个模糊匹配的查询条件,查询所有 `customer` 字段包含 `name` 的记录。 3. **使用 HQL 和 SQL 查询**: - **HQL 查询**: ```java String hql = "select s....

    List对象去重和按照某个字段排序的实现方法

    今天,我们将探讨如何对List对象进行去重和按照某个字段排序的实现方法。 首先,让我们来看一下List对象的去重。List对象去重可以使用HashSet来实现。HashSet是一个无序的集合,不能包含重复元素。我们可以将List...

    Java中List根据map的某个key去重的代码

    List是一种集合类型,它可以存储多个对象,而Map是一种键值对的集合类型,它可以存储键值对。 在Java中,我们可以使用List和Map来存储和处理数据。 现在,让我们来看一下如何使用Java语言来实现List根据map的某个...

    list去掉重复对象

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

    List&lt;map&gt;多字段组合排序

    List,List, Object&gt;&gt;,多字段组合排序。提供一个简易的思路,如果需要进行参考。

    C#中datatable去重的方法

    在C#编程中,处理数据时经常会遇到需要去除DataTable中重复数据的情况。DataTable是一种常见的数据存储...在实践中,根据实际情况灵活运用这些方法,可以提高代码的效率和可维护性,对提升C#程序设计的质量大有裨益。

    Python-自动化子域名简单收集去重获取网站banner信息

    Python提供了多种数据结构如集合(set)来进行去重操作。集合是无序且不允许重复元素的数据结构,将子域名添加到集合中时,重复的子域名会被自动过滤掉。 再者,获取网站的banner信息通常是指通过HTTP请求获取网页...

    django queryset 去重 .distinct()说明

    如果想要基于特定字段进行去重,Django提供了`distinct(fields)`方法,允许你传入一个字段列表,只根据这些字段进行去重。例如: ```python houses = house.distinct('field1', 'field2') ``` 在这个例子中,`...

    mongodb中使用distinct去重的简单方法

    总结一下,MongoDB的`distinct`命令是用于查询特定字段所有唯一值的强大工具,它支持对普通字段、数组字段甚至数组内的嵌套文档进行操作。通过理解并熟练运用`distinct`,我们可以更高效地从MongoDB集合中提取独特...

    java-集合-知识点汇总

    * HashSet:是一个基于哈希表的集合实现,支持快速查找和去重操作。 * TreeSet:是一个基于树形结构的集合实现,支持快速查找和排序操作。 * HashMap:是一个基于哈希表的映射实现,支持快速查找和插入操作。 * ...

    易语言源码字段不重复.7z

    2. **哈希表与集合**:易语言支持数据结构如哈希表和集合,它们天然具备去重功能。通过将待插入的字段作为键(Key),可以快速判断该字段是否已经存在于数据结构中。 3. **数据库操作**:如果字段存储在数据库中,...

Global site tag (gtag.js) - Google Analytics