我们平时处理数据时,会发现里面有很多重复的数据,这时就需要对数据进行去重操作,那么在java中我们可以用到集合进行这样的操作。

我们就以具体的需求为例:

                在键盘中输入一个字符串,然后进行去重处理,还要保证按照原来的顺序输出

先说说具体思路吧:

                首先我们从键盘中输入一个字符串,这里我们对字符串进行处理,在这里有两种处理方式:

1.可以将字符串遍历,用charAt()方法获取字符串中每一个字符;2.推荐使用的一种,将字符串转换成字符数组,然后按照数组的遍历,获取每一个数据;

然后我们定义集合接收遍历出的数据,进行一系列操作。这里我们使用的集合是无序单列集合set接口的实现类HashSet的子类LinkedHashSet。

        同样为无序集合,那么他们又有什么区别呢,HashSet是可以对数据进行去重操作,但是它去重之后的数据是没有按照原有的顺序排列,而作为他的子类LinkedHashSet不仅可以对数据进行去重,还保证了数据原有的顺序。

具体的代码实现:

package com.tlc.homework.disorder;import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;public class LinkedHashSetText {public static void main(String[] args) {//创建Scanner对象Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");//键盘输入一个字符串String s = sc.next();//创建HashSet对象Set<Character> set = new HashSet<>();//创建LinkedHashSet对象Set<Character> set1 = new LinkedHashSet<>();//用HashSet去重,并输出结果getMethod1(set, s);System.out.println("使用HashSet去重效果");System.out.println(set);System.out.println("===========前后比较============");//用LinkedHashSet进行去重,然后输出结果getMethod1(set1, s);System.out.println("使用LinkedHashSet去重的效果");System.out.println(set1);//调用转换为数组的方法getMethod2(set1, s);System.out.println(set1);}public static void getMethod1(Set<Character> set, String s) {for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);set.add(c);}}public static void getMethod2(Set<Character> set, String s) {//利用toCharArray()方法将字符串转换为字符数组char[] chars = s.toCharArray();//对字符数组进行遍历for (int i = 0; i < chars.length; i++) {set.add(chars[i]);}}}

代码运行效果展示:

请输入一个字符串:
MAFDAGFAFDCM
使用HashSet去重效果
[A, C, D, F, G, M]
===========前后比较============
使用LinkedHashSet去重的效果
[M, A, F, D, G, C]
[M, A, F, D, G, C]

利用集合对数据进行去重操作相关推荐

  1. Java面向过程实现员工管理系统(利用集合存储数据实现员工增删改查排序)

    1.界面: package staffSystem;import java.util.Scanner;/*** 交互界面* @author 123**/ public class Surface {p ...

  2. Python使用matplotlib绘制数据去重前后的柱状图对比图(在同一个图中显示去重操作之后同一数据集的变化情况)

    Python使用matplotlib绘制数据去重前后的柱状图对比图(在同一个图中显示去重操作之后同一数据集的变化情况) #仿真数据 import pandas as pd import numpy a ...

  3. python 表格格式输出_利用python对excel中一列的时间数据更改格式操作

    问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 2019-05-10 00:00:00 1 K10Y01 ...

  4. c#对象集合去重_C# List集合去重操作注意点

    今天调试代码时发现list的distinct方法在对引用类型操作时并没有去重,后来查阅资料发现list去重操作对象集合时比较的是对象的一个个引用地址, 因为集合里的对象都是一个个单独的实例,所以并不会 ...

  5. TF:利用TF读取数据操作,将CIFAR-10 数据集中的训练图片读取出来,并保存为.jpg格式

    TF:利用TF读取数据操作,将CIFAR-10 数据集中的训练图片读取出来,并保存为.jpg 格式 目录 输出结果 核心代码 输出结果 核心代码 def inputs_origin(data_dir) ...

  6. 对查询到的集合数据进行去重

    对查询到的集合数据进行去重 前言 今天查询数据库获得List集合后,要按照月份(格式为2022-11)展示所有学生报告,所以需要获取数据所有的时间(格式为2022-11-11 00:00:00)进行去 ...

  7. java操作Excel之POI(4)利用POI实现数据的批量导出

    后台导出方法: 1 /** 2 * 后台导出方法 3 * 利用POI实现数据的批量导出 4 */ 5 public String export() throws Exception{ 6 Connec ...

  8. 查询去重_如何在 1 秒内做到大数据精准去重?

    去重计数在企业日常分析中应用广泛,如用户留存.销售统计.广告营销等.海量数据下的去重计数十分消耗资源,动辄几分钟,甚至几小时,Apache Kylin 如何做到秒级的低延迟精确去重呢? 作者:史少锋, ...

  9. 千万数据去重_如何在 1 秒内做到大数据精准去重?

    去重计数在企业日常分析中应用广泛,如用户留存.销售统计.广告营销等.海量数据下的去重计数十分消耗资源,动辄几分钟,甚至几小时,Apache Kylin 如何做到秒级的低延迟精确去重呢? 什么是去重计数 ...

最新文章

  1. ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测
  2. 测量一条反斜线的频率和质量n+m=9
  3. C/S和B/S的异同
  4. 支持字典_【多测师小课堂】python数据类型之列表、字典、元祖、字符串
  5. 返回指针_C语言面试中的问题指针和引用的使用场景?
  6. ibm+x3650+m4+linux+raid驱动,IBM X3650M4阵列卡驱动下载
  7. 线程间的协作(3)——管道输入/输出流
  8. python解析response的json_从HTML responseTex解析JSON
  9. css一行点点点_如何通过一点点创意使CSS成为不可能
  10. python虚拟环境中安装diango_python项目部署之 django虚拟环境
  11. mybatis调用oracle存储过程例子.
  12. 【CentOS】Centos下pip的安装
  13. 计算机软件在哪里建文本文档,电脑点击右键的新建文本文档不见了的解决方法 怎么解决电脑点击右键的新建文本文档不见了...
  14. c语言课程设计实训主要目的,《C语言课程设计实验大纲.doc
  15. 科来网络全流量安全分析系统[Study]
  16. [CSS3] 使用边框和背景(设置元素的背景)
  17. L1-009 N个数求和 (20分) C语言
  18. BLS 签名和基于 BLS 签名的门限签名
  19. python-pyecharts 数据分析原来可以这么炫酷
  20. python爬取url_python爬虫之爬取谷歌url

热门文章

  1. oracle产生随机日期,Oracle生成随机日期时间
  2. 动态规划——乘积最大子数组(Leetcode 152)
  3. python中scrapy是什么_python爬虫中scrapy组件有哪些?作用是什么?
  4. 服务器centos安装mysql_centos下安装mysql服务器的方法
  5. system类的 静态方法可以启动垃圾回收器。_跟小伟一起学习类加载机制
  6. 【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(4)
  7. 实践实战:在PoC中的Oracle 12c优化器参数推荐(含PPT)
  8. 应用架构步入“无服务器”时代 Serverless技术迎来新发展
  9. 如何快速上手 angular.js
  10. 技术干货丨隐私保护下的迁移算法