利用集合对数据进行去重操作
我们平时处理数据时,会发现里面有很多重复的数据,这时就需要对数据进行去重操作,那么在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]
利用集合对数据进行去重操作相关推荐
- Java面向过程实现员工管理系统(利用集合存储数据实现员工增删改查排序)
1.界面: package staffSystem;import java.util.Scanner;/*** 交互界面* @author 123**/ public class Surface {p ...
- Python使用matplotlib绘制数据去重前后的柱状图对比图(在同一个图中显示去重操作之后同一数据集的变化情况)
Python使用matplotlib绘制数据去重前后的柱状图对比图(在同一个图中显示去重操作之后同一数据集的变化情况) #仿真数据 import pandas as pd import numpy a ...
- python 表格格式输出_利用python对excel中一列的时间数据更改格式操作
问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 2019-05-10 00:00:00 1 K10Y01 ...
- c#对象集合去重_C# List集合去重操作注意点
今天调试代码时发现list的distinct方法在对引用类型操作时并没有去重,后来查阅资料发现list去重操作对象集合时比较的是对象的一个个引用地址, 因为集合里的对象都是一个个单独的实例,所以并不会 ...
- TF:利用TF读取数据操作,将CIFAR-10 数据集中的训练图片读取出来,并保存为.jpg格式
TF:利用TF读取数据操作,将CIFAR-10 数据集中的训练图片读取出来,并保存为.jpg 格式 目录 输出结果 核心代码 输出结果 核心代码 def inputs_origin(data_dir) ...
- 对查询到的集合数据进行去重
对查询到的集合数据进行去重 前言 今天查询数据库获得List集合后,要按照月份(格式为2022-11)展示所有学生报告,所以需要获取数据所有的时间(格式为2022-11-11 00:00:00)进行去 ...
- java操作Excel之POI(4)利用POI实现数据的批量导出
后台导出方法: 1 /** 2 * 后台导出方法 3 * 利用POI实现数据的批量导出 4 */ 5 public String export() throws Exception{ 6 Connec ...
- 查询去重_如何在 1 秒内做到大数据精准去重?
去重计数在企业日常分析中应用广泛,如用户留存.销售统计.广告营销等.海量数据下的去重计数十分消耗资源,动辄几分钟,甚至几小时,Apache Kylin 如何做到秒级的低延迟精确去重呢? 作者:史少锋, ...
- 千万数据去重_如何在 1 秒内做到大数据精准去重?
去重计数在企业日常分析中应用广泛,如用户留存.销售统计.广告营销等.海量数据下的去重计数十分消耗资源,动辄几分钟,甚至几小时,Apache Kylin 如何做到秒级的低延迟精确去重呢? 什么是去重计数 ...
最新文章
- ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测
- 测量一条反斜线的频率和质量n+m=9
- C/S和B/S的异同
- 支持字典_【多测师小课堂】python数据类型之列表、字典、元祖、字符串
- 返回指针_C语言面试中的问题指针和引用的使用场景?
- ibm+x3650+m4+linux+raid驱动,IBM X3650M4阵列卡驱动下载
- 线程间的协作(3)——管道输入/输出流
- python解析response的json_从HTML responseTex解析JSON
- css一行点点点_如何通过一点点创意使CSS成为不可能
- python虚拟环境中安装diango_python项目部署之 django虚拟环境
- mybatis调用oracle存储过程例子.
- 【CentOS】Centos下pip的安装
- 计算机软件在哪里建文本文档,电脑点击右键的新建文本文档不见了的解决方法 怎么解决电脑点击右键的新建文本文档不见了...
- c语言课程设计实训主要目的,《C语言课程设计实验大纲.doc
- 科来网络全流量安全分析系统[Study]
- [CSS3] 使用边框和背景(设置元素的背景)
- L1-009 N个数求和 (20分) C语言
- BLS 签名和基于 BLS 签名的门限签名
- python-pyecharts 数据分析原来可以这么炫酷
- python爬取url_python爬虫之爬取谷歌url
热门文章
- oracle产生随机日期,Oracle生成随机日期时间
- 动态规划——乘积最大子数组(Leetcode 152)
- python中scrapy是什么_python爬虫中scrapy组件有哪些?作用是什么?
- 服务器centos安装mysql_centos下安装mysql服务器的方法
- system类的 静态方法可以启动垃圾回收器。_跟小伟一起学习类加载机制
- 【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(4)
- 实践实战:在PoC中的Oracle 12c优化器参数推荐(含PPT)
- 应用架构步入“无服务器”时代 Serverless技术迎来新发展
- 如何快速上手 angular.js
- 技术干货丨隐私保护下的迁移算法