实际应用场景:从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. C++第三次作业--作用域

    作用域 任何一种语言最基本的部分就是变量,而变量有两个非常重要的特性,作用域和生存期. 定义 作用域是变量的一个属性,某个变量在代码中有效的区域为该变量的作用域. 函数原型作用域 函数声明参数从参数声 ...

  2. okhttp同步请求流程和源码分析

    在上一次[http://www.cnblogs.com/webor2006/p/8022808.html]中已经对okhttp的同步与异步请求的基本使用有了一了初步了解,这次来从源码的角度来分析一下同 ...

  3. UVA 1482 SG打表

    打出SG表来可以很容易的发现i为偶数时 SG[i]=i/2 i为奇数时 SG[i]=SG[i/2] #include<bits/stdc++.h> typedef long long ll ...

  4. HelloWorld编写过程中注意事项

    一.package关键字 * package表示当前代码所属的包(package),是一种组织结构.其他package通过包名调用这个包下内容* package是必须的,每个文件的package必须存 ...

  5. vs调试时,不显示局部变量

    为了测试一个函数的返回值,就在某个函数里加了一个局部变量,调试却不显示所添加变量的信息. 你一定设置成了release 模式.改为debug就可以了. 比较弱智的问题,mark一下.

  6. 分布式 一致性Paxos算法(转载)

    比较通俗易懂,可以入门,转载地址是http://www.cnblogs.com/linbingdong/p/6253479.html Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有 ...

  7. 炫酷CSS3垂直时间轴特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. C/C++字符串转换函数;

    字符串转数字: char 转 int 函数: atoi   wchar  转 int 函数: _wtoi 数字转字符串: std::to_string(): std::to_wsting();

  9. js的三种异步处理

    js的三种异步处理   Promise 对象 含义: Promise是异步编程的一种解决方案, 优点: 相比传统回调函数和事件更加合理和优雅,Promise是链式编程(后面会详细讲述),有效的解决了令 ...

  10. docker打包flask简单程序

    简单代码: from flask import Flask app=Flask(__name__) @app.route('/') def hello(): return 'hello world' ...