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

  1. package test.com.dflzm.tpme.szjh;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashSet;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Set;
  8.  
  9. import org.apache.commons.collections.Bag;
  10. import org.apache.commons.collections.HashBag;
  11. import org.junit.Test;
  12.  
  13. /**
  14. * Description
  15. * @author fanj
  16. * @version 1.0
  17. * 2019年10月24日 上午11:29:14
  18. */
  19. public class ListToSetTest {
  20.  
  21. /**
  22. *
  23. * @Description list中元素个数统计
  24. * @author fanj
  25. * @date 2019年10月24日
  26. */
  27. @Test
  28. public void test() {
  29. // 初始化list
  30. List<String> list = setUpList();
  31. // list转set
  32. Set set = new HashSet(list);
  33. System.out.println("set:" + set);
  34. // 判断list中是否有重复的元素
  35. if (list.size() != set.size()) {
  36. System.out.println("list中存在重复元素");
  37. // 统计list中重复元素及其个数
  38. countEqualElement(list);
  39. }
  40.  
  41. }
  42.  
  43. /**
  44. *
  45. * @Description 统计list中重复元素个数
  46. * @author fanj
  47. * @date 2019年10月24日
  48. * @param list
  49. */
  50. private void countEqualElement(List<String> list) {
  51. Bag bag = new HashBag(list);
  52. // 相同元素集合
  53. Set<String> equalElesSet = new HashSet<String>();
  54. // 相同元素
  55. String equalElement = "";
  56. for (int i = 0; i < list.size(); i++) {
  57. equalElement = list.get(i);
  58. // 利用hashBag的getCount()方法进行统计重复元素个数
  59. int count = bag.getCount(equalElement);
  60. if (count > 1) {
  61. // 保存重复元素
  62. equalElesSet.add(equalElement);
  63. }
  64. }
  65. if (equalElesSet.size() > 0) {
  66. // 相同元素个数
  67. int length = equalElesSet.size();
  68. System.out.println("重复元素组数:" + length);
  69. // 输出相同元素
  70. Iterator<String> it = equalElesSet.iterator();
  71. int count = 1;
  72. while (it.hasNext()) {
  73. String next = it.next();
  74. System.out.println("第" + count + "个重复元素:" + next);
  75. count++;
  76. }
  77. }
  78. }
  79.  
  80. /**
  81. *
  82. * @Description 初始化list
  83. * @author fanj
  84. * @date 2019年10月24日
  85. * @return
  86. */
  87. private List<String> setUpList() {
  88. // 创建集合
  89. List<String> list = new ArrayList<String>();
  90. // 添加元素
  91. list.add("1109Z2");
  92. list.add("X03006-1004111B");
  93. list.add("13MA-11011");
  94. list.add("1109Z2");
  95. list.add("X03006-1004111B");
  96. System.out.println("list:" + list);
  97. return list;
  98. }
  99.  
  100. }

输出结果如下:

利用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. 编译TensorFlow-serving GPU版本

    编译TensorFlow-serving GPU版本 TensorFlow Serving 介绍 编译GPU版本 下载源码 git clone https://github.com/tensorflo ...

  2. 内核模式构造-Mutex构造(RecursiveAutoResetEvent)

    internal sealed class RecursiveAutoResetEvent : IDisposable { private AutoResetEvent m_lock = new Au ...

  3. 【安徽集训】fiend

    考试的时候只会 \(O(Tn^3)\) 的做法,其它题还都不会,想到一整场就打这么点是人都能写的暴力没啥意思,就懒得写了.. Description 双人博弈.每一轮 A 和 B 同时选择一个 \(1 ...

  4. qt libusb

    https://github.com/Kakadu/Qt_libusb https://github.com/mcvsama/libusbcc/tree/master/src/libusbcc htt ...

  5. tqdm模块

    tqdm 是 Python 进度条库. tqdm库下面有2个类我们经常使用: 1. 2. 可以在 Python 长循环中添加一个进度提示信息用法:tqdm(iterator) trange(i) 是 ...

  6. laravel 视图流程控制,if switch for loop

    流程控制 除了模板继承和数据显示之外,Blade 还为常用的 PHP 流程控制提供了便利操作,例如条件语句和循环,这些快捷操作提供了一个干净.简单的方式来处理 PHP 的流程控制,同时保持和 PHP ...

  7. NOIP 模拟赛 那些年,我们学过的文化课 --致已退役的fqk神犇.

    /* 这大概是我第一次整理模拟赛吧. 唉. T2打了很长时间. 一开始读错题了中间都能缩合了. 真心对不起生物老师hhh. 这种状态判重的题目还是做的太少! */ 背单词 [题目描述] fqk 退役后 ...

  8. Catch That Cow (POJ - 3278)(简单BFS)

    转载请注明出处:https://blog.csdn.net/Mercury_Lc/article/details/82693928作者:Mercury_Lc 题目链接 题解:给你x.y,x可以加1.减 ...

  9. [BZOJ4033]:[HAOI2015]树上染色(树上DP)

    题目传送门 题目描述 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加 ...

  10. LeetCode 238. 除自身以外数组的乘积( Product of Array Except Self)

    题目描述 给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积. 示例: 输 ...