对Java数组中去除重复项程序分析
我作为一个Java菜鸟,只会用简单的办法来处理这个问题。如果有大神看到,请略过,感激不尽!
所以首先先分析这道题目:数组中重复的数据进行删除,并且要让数组里的数据按原来的顺序排列,中间不能留空。
既然要删除重复的项目,那么以我现在的功力,只能用循环嵌套来处理。所以做一个循环,在循环体内部再嵌套一个循环,作用就是让数组的第一个数据和后面的每一个数据做对比。
然后在内循环体里面做判断,如果遇到相同数据,那么就让后面的数据都往前移动一个位置来覆盖第一个数据,以此类推。因此想要达到这个效果,内层循环里面的判断里面还要嵌套一个循环来做一件事情,就是让数据从后往前移动一个位置。注意:如果有重复项,那么当最后一个数据往前移动之后,必须要将最后一个位置置为空,否则就会出现程序打印出来的时候,最后面的几个数据完全相同。
具体的细节请看如下程序分析:
public class home4 {
public static void main(String[] args) {
String [] arr = {"A","B","C","D","E","F","G","A","B","C"};
System.out.print("原始数据为:");
for (int i = 0; i < arr.length; i++) {//打印出原始数据
System.out.print(" " + arr[i]);
}
for (int i = 0; i < arr.length-1; i++) {//对比判断重复数据
if (arr[i+1]==null) {//判断外层数组是否为空,若为空就退出循环
break;
}
for (int j = i+1; j < arr.length; j++) {//进行循环对比,找出重复项目
if (arr[i].equals(arr[j])) {//遇到重复项,将后面的数据往前移动,覆盖重复项
for (int j2 = i; j2 < arr.length-1; j2++) {//等于i的目的是保证每次只往前移动一个位置
arr[j2]=arr[j2+1];
}
arr[arr.length-1] = null;//将最后一个数据置为空,避免重复
i--;//移动后,再让当前数据和后面的数据进行对比
break;//结束本次循环
}
}
}
System.out.println();
System.out.print("去掉重复内容后的结果为:");
for (int i = 0; i < arr.length; i++) {//打印输出最后的结果
System.out.print(arr[i]+" ");
}
}
}
写了半天,没有功能也有苦劳,请默默地点个赞,谢谢!
对Java数组中去除重复项程序分析的更多相关文章
- [LeetCode] 80. Remove Duplicates from Sorted Array II 有序数组中去除重复项 II
Given a sorted array nums, remove the duplicates in-place such that duplicates appeared at most twic ...
- [LeetCode] Remove Duplicates from Sorted Array 有序数组中去除重复项
Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...
- [LeetCode] 26. Remove Duplicates from Sorted Array 有序数组中去除重复项
Given a sorted array nums, remove the duplicates in-place such that each element appear only once an ...
- [LeetCode] Remove Duplicates from Sorted Array II 有序数组中去除重复项之二
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...
- [LeetCode] 80. Remove Duplicates from Sorted Array II 有序数组中去除重复项之二
Given a sorted array nums, remove the duplicates in-place such that duplicates appeared at most twic ...
- [LeetCode] 26. Remove Duplicates from Sorted Array ☆(从有序数组中删除重复项)
[LeetCode] Remove Duplicates from Sorted Array 有序数组中去除重复项 描述 Given a sorted array nums, remove the d ...
- LeetCode(26): 删除排序数组中的重复项
Easy! 题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间 ...
- Java实现 LeetCode 80 删除排序数组中的重复项 II(二)
80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...
- Java实现 LeetCode 26 删除排序数组中的重复项
26. 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...
随机推荐
- plist文件里边如果最外层是字典的话,读出来是无序的。
如题. 要想使字典有序的话,可以用数组来存放字典,然后读
- 可视化日历_Java实现
//刚刚学Java,写的小程序 package cn.xiaocangtian.testDate; import java.text.DateFormat; import java.text.Pars ...
- C#后台调用公网接口(GET, POST)
//get方法调用接口获取json文件内容 public void GetFunction() { string service ...
- Expression Blend 4 学习笔记
Animation Storyboard(情节提要)在对象和时间线面板中建立和命名,定位到对象(object),通过拖动play head(播放头,时间线中垂直的黄色指示线)定位到特定的时间点,点击“ ...
- mysql提供dataprovider
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Inpu ...
- PHP webservice的使用
提到php的webservice.之前还是比较陌生的,因为接触的少呀,几乎在所有的公司中没用过,仅仅用过的一次好像是接入一个第三方的短信通道,用的是SOAP|WSDL. 一个很极端的话“webserv ...
- SQL Server 系统数据库
Sql Server的系统数据库分为:master.model.msdb,resouce和tempdb,这五个数据库在SQL Server中各司其职,作为研发人员,很有必要了解这几个数据库的职责,下面 ...
- ORA-12638:身份证明检索失败
本地Sqlplus 连一远程数据库,出现 ORA-12638: 身份证明检索失败,pl/sql developer 也是同样的问题,tnsping 是没有问题的. 找到本地的sqlnet.ora文件, ...
- 如何把Power BI嵌入到Web应用中
(此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这篇其实不是一个操作向导了,主要对Power BI的嵌入特性进行探讨. Power BI ...
- 再谈缓存和Redis
自从上次分享<Redis到底该如何利用?>已经有1年多了,这1年经历了不少.从码了我们网站的第一行开始到现在,我们的缓存模块也不断在升级,这之中确实略有心得,最近也有朋友探讨缓存,觉得可以 ...