实际应用场景:从Excel导入数据时,存在某个标识符相同的多条数据,需要进行合并,因此需要统计重复元素,可以利用Bag包下的getCount()进行统计,代码如下:

 package test.com.dflzm.tpme.szjh;

 import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set; import org.apache.commons.collections.Bag;
import org.apache.commons.collections.HashBag;
import org.junit.Test; /**
* Description
* @author fanj
* @version 1.0
* 2019年10月24日 上午11:29:14
*/
public class ListToSetTest { /**
*
* @Description list中元素个数统计
* @author fanj
* @date 2019年10月24日
*/
@Test
public void test() {
// 初始化list
List<String> list = setUpList();
// list转set
Set set = new HashSet(list);
System.out.println("set:" + set);
// 判断list中是否有重复的元素
if (list.size() != set.size()) {
System.out.println("list中存在重复元素");
// 统计list中重复元素及其个数
countEqualElement(list);
} } /**
*
* @Description 统计list中重复元素个数
* @author fanj
* @date 2019年10月24日
* @param list
*/
private void countEqualElement(List<String> list) {
Bag bag = new HashBag(list);
// 相同元素集合
Set<String> equalElesSet = new HashSet<String>();
// 相同元素
String equalElement = "";
for (int i = 0; i < list.size(); i++) {
equalElement = list.get(i);
// 利用hashBag的getCount()方法进行统计重复元素个数
int count = bag.getCount(equalElement);
if (count > 1) {
// 保存重复元素
equalElesSet.add(equalElement);
}
}
if (equalElesSet.size() > 0) {
// 相同元素个数
int length = equalElesSet.size();
System.out.println("重复元素组数:" + length);
// 输出相同元素
Iterator<String> it = equalElesSet.iterator();
int count = 1;
while (it.hasNext()) {
String next = it.next();
System.out.println("第" + count + "个重复元素:" + next);
count++;
}
}
} /**
*
* @Description 初始化list
* @author fanj
* @date 2019年10月24日
* @return
*/
private List<String> setUpList() {
// 创建集合
List<String> list = new ArrayList<String>();
// 添加元素
list.add("1109Z2");
list.add("X03006-1004111B");
list.add("13MA-11011");
list.add("1109Z2");
list.add("X03006-1004111B");
System.out.println("list:" + list);
return list;
} }

输出结果如下:

利用Bag中的getCount()方法统计list集合中重复元素的更多相关文章

  1. 【转载】C#中使用Average方法对List集合中相应元素求平均值

    在C#的List集合操作中,有时候需要对List集合元素进行汇总求平均值,如数值类型的List集合元素,有时候对象类型的List集合也需要对集合中的元素的某个对象进行汇总求平均值,此时都可以使用到Av ...

  2. 【转载】 C#中使用Count方法获取List集合中符合条件的个数

    很多时候操作List集合的过程中,我们需要根据特定的查询条件,获取List集合中有多少个实体对象符合查询条件,例如一批产品的对象List集合,如果这批产品的不合格数量大于10则重点备注.在C#中可以自 ...

  3. Day_11【集合】扩展案例2_使用普通for循环获取集合中索引为3的元素并打印,统计集合中包含字符串"def"的数量,删除集合中的所有字符串",将集合中每个元素中的小写字母变成大写字母def",

    分析以下需求,并用代码实现 1.定义ArrayList集合,存入多个字符串"abc" "def" "efg" "def" ...

  4. ASP.NET#使用母版时,如果要使用js中的getElementById()方法取得某个内容页的元素时要注意的问题

    当使用母版,要使用js中的getElementById()方法取得某个内容页的元素时,所选取的id并不是母版中内容页的id,而是在设计内容页时设定的id例子:母版页: ...... <head ...

  5. Java分享笔记:使用entrySet方法获取Map集合中的元素

    /*--------------------------------- 使用entrySet方法取出Map集合中的元素: ....该方法是将Map集合中key与value的关系存入到了Set集合中,这 ...

  6. 【转载】C#中使用Insert方法往ArrayList集合指定索引位置插入新数据

    ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,在ArrayList集合操作过程中,可以使用ArrayList集合类的I ...

  7. 【转载】C#中通过Distinct方法对List集合进行去重

    在C#的List集合对象中,可以使用Distinct方法来对List集合元素进行去重,如果list集合内部元素为值类型,则Distinct方法根据值类型是否相等来判断去重,如果List集合内部元素为引 ...

  8. 【转载】 C#中使用CopyTo方法将List集合元素拷贝到数组Array中

    在C#的List集合操作中,有时候需要将List元素对象拷贝存放到对应的数组Array中,此时就可以使用到List集合的CopyTo方法来实现,CopyTo方法是List集合的扩展方法,共有3个重载方 ...

  9. 【转载】 C#中使用Sum方法对List集合进行求和操作

    在C#的List操作中,有时候我们需要对List集合对象的某个属性进行求和操作,此时可以使用Lambda表达式中的Sum方法来快速实现此求和操作,使用Sum方法可使代码简洁易读,并且省去写for循环或 ...

随机推荐

  1. 热门前沿知识相关面试问题-MVC/MVP/MVVM架构设计模式面试问题详解

    MVC[最常用]: MVC的定义:M:业务逻辑处理.[业务MODEL]V:处理数据显示的部分.[如xml布局文件]C:Activity处理用户交互的问题.[也就是Activity在MVC中扮演着C的角 ...

  2. SCU 4584 tarjan+最大权闭合子图

    把每个点的点权当做是W[i]-V[i] 题目一眼是最大权闭合子图 但是可能会有重边自环和环 需要先搞成简单图 再tarjan缩点 缩点后就是裸的最大权闭合子图 #include<bits/std ...

  3. hdu 6046 hash

    题: OwO http://acm.hdu.edu.cn/showproblem.php?pid=6046 (2017 Multi-University Training Contest - Team ...

  4. Shell登陆

    Shell登录信息 注:只对本地终端起作用,远程终端不起作用(也就是说这个文件对远程登录是无效的). 修改后: 输出: 注:这里在配置文件中添加\l之后会显示终端(这里为终端1),按住Alt+F2可以 ...

  5. ubuntu安装扩展在phpinfo显示不出来的解决办法

    在Ubuntu中使用apt-get安装了php扩展(比如redis.memcache.memcached等),在终端输入php -m是显示已加载,但是在phpinfo中无法显示,这个时候需要重启一下p ...

  6. C++入门经典-例6.23-字符串数组赋值与string

    1:代码如下: // 6.23.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #inc ...

  7. LeetCode 42. 接雨水(Trapping Rain Water)

    题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况 ...

  8. SpringBoot Thymeleaf 配置多个Template Locations

    @Configuration public class ThymeleafConfigration { @Bean public SpringResourceTemplateResolver firs ...

  9. SpringSecurity开发

    RBAC 数据库权限表结构设计与创建 sys_user表 CREATE TABLE sysuser (id INT(10) unsigned PRIMARY KEY NOT NULL COMMENT ...

  10. Android 获取Bitmap方式

    1.获得当前项目资源文件(assets)下图片 (1).获得图片数据流 private Bitmap getBotMapInfo() { Bitmap bitmap = null; try { Inp ...