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集合多个复杂字段判断去重的案例 在 Java 编程中,List 集合是我们常用的数据结构之一。当我们需要对 List 集合进行去重操作时,通常的做法是将其转换为 Set 集合,因为 Set 集合不允许重复元素。但是,事情并...
在Java编程中,有时我们需要处理列表(List)数据结构,并且在处理过程中,可能需要根据元素的特定字段去重。Java 8引入了Stream API,它提供了强大的数据处理能力,包括去重操作。本篇文章将详细讲解如何使用Java 8...
以上就是对Java中List集合对象去重及按属性去重的8种方法的详细解释。每种方法都有其适用场景,开发者应根据实际需求选择合适的方法。在实现这些方法时,要确保对象的`equals()`和`hashCode()`方法正确实现,以保证...
在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...
1. 单字段去重查询: 当我们只需要找出某个特定字段(如`Parameter`)重复的记录时,可以使用以下查询语句: ``` SELECT * FROM Table WHERE Parameter IN (SELECT Parameter FROM Table GROUP BY Parameter ...
### Java删除重复字段知识点解析 在本篇文章中,我们将深入探讨如何使用Java编程语言来删除数组中的重复元素。示例代码提供了一种方法,通过利用`HashMap`数据结构的特性来实现这一目标。 #### 一、问题背景 假设...
"利用Distinct()内置方法对List集合的去重问题详解" 知识点1:List<T> 集合的去重问题 List<T> 集合是泛型链表,实现了IEnumerable接口,规定了Distinct方法。但是,Distinct方法不能直接应用于引用类型的集合去重...
此外,当我们需要基于特定字段去重时,可以自定义比较器(Comparator)来实现更复杂的去重逻辑。 总结,Java中的内连接和外连接帮助我们在数据库中高效地处理相关数据,集合提供了一种灵活的数据组织方式,而去重...
上述代码通过 `Restrictions.like()` 方法创建了一个模糊匹配的查询条件,查询所有 `customer` 字段包含 `name` 的记录。 3. **使用 HQL 和 SQL 查询**: - **HQL 查询**: ```java String hql = "select s....
今天,我们将探讨如何对List对象进行去重和按照某个字段排序的实现方法。 首先,让我们来看一下List对象的去重。List对象去重可以使用HashSet来实现。HashSet是一个无序的集合,不能包含重复元素。我们可以将List...
List是一种集合类型,它可以存储多个对象,而Map是一种键值对的集合类型,它可以存储键值对。 在Java中,我们可以使用List和Map来存储和处理数据。 现在,让我们来看一下如何使用Java语言来实现List根据map的某个...
一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。
List,List, Object>>,多字段组合排序。提供一个简易的思路,如果需要进行参考。
在C#编程中,处理数据时经常会遇到需要去除DataTable中重复数据的情况。DataTable是一种常见的数据存储...在实践中,根据实际情况灵活运用这些方法,可以提高代码的效率和可维护性,对提升C#程序设计的质量大有裨益。
Python提供了多种数据结构如集合(set)来进行去重操作。集合是无序且不允许重复元素的数据结构,将子域名添加到集合中时,重复的子域名会被自动过滤掉。 再者,获取网站的banner信息通常是指通过HTTP请求获取网页...
如果想要基于特定字段进行去重,Django提供了`distinct(fields)`方法,允许你传入一个字段列表,只根据这些字段进行去重。例如: ```python houses = house.distinct('field1', 'field2') ``` 在这个例子中,`...
总结一下,MongoDB的`distinct`命令是用于查询特定字段所有唯一值的强大工具,它支持对普通字段、数组字段甚至数组内的嵌套文档进行操作。通过理解并熟练运用`distinct`,我们可以更高效地从MongoDB集合中提取独特...
* HashSet:是一个基于哈希表的集合实现,支持快速查找和去重操作。 * TreeSet:是一个基于树形结构的集合实现,支持快速查找和排序操作。 * HashMap:是一个基于哈希表的映射实现,支持快速查找和插入操作。 * ...
2. **哈希表与集合**:易语言支持数据结构如哈希表和集合,它们天然具备去重功能。通过将待插入的字段作为键(Key),可以快速判断该字段是否已经存在于数据结构中。 3. **数据库操作**:如果字段存储在数据库中,...