对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) ...
随机推荐
- 正则表达式 判断 ip:端口 形式
<html> <head> </head> <body> ip:port<input type="" name="z ...
- Flex 1046: 找不到类型,或者它不是编译时常数;1180: 调用的方法 CompPropInfo 可能未定义
导入项目之后一直报这个错误, 1046: 找不到类型,或者它不是编译时常数: 1180: 调用的方法 CompPropInfo 可能未定义 想这应该是没有把当前这个类编译进项目当中,找了半天也没有找到 ...
- MysqlNDB集群配置
为了避免不必要的资源分配,默认情况下是不启动ndbcluster引擎.
- gloolooer
V1.2gloolooer金[http://sh.yun.ftn.qq.com/ftn_handler/0a9043ee7aa120d3c864281211dff2f08efe5e2d42438ec5 ...
- unity播放视频
方法一: 1.用一个Quad(或者其他的)做屏幕,调整摄像机位置和它的大小,使它显示在你想要的区域 2.将视频拖入Unity,拖入,拖入,拖入:不是将视频直接copy到指定的文件夹中 3.将下面脚本挂 ...
- WinForm中重绘TabControl选项卡标题
最近开发WinForm频繁使用了TabControl控件,这个控件的选项卡没有BackgroundImage这个属性,那么如何为其各个选项卡添加背景图片呢?(这里说的是每个TabPage的头部,也就是 ...
- Android Studio中Button等控件的Text中字符串默认大写的解决方法
初学Android的时候,在Android Studio中xml里面添加一个Button.EditText等控件后,它的Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是 ...
- 剑指Offer-【面试题04:替换空格】
package com.cxz.question4; /* * 请实现一个函数,把字符串中的每个空格替换成"%20",例如"We are happy.",则输出 ...
- 怎样用conda安装opencv
首先用Anaconda是因为方便(管理方便,包安装真心不方便).下面是我的安装过程: 首先使用如下命令安装opencv conda install -c https://conda.binstar.o ...
- CozyRSS开发记录21-默认RSS源列表
CozyRSS开发记录21-默认RSS源列表 1.默认列表 在第一次使用CozyRSS的情况下,我们让它内置五个RSS源吧: 2.响应RSS源的更新 先不处理RSS源列表项的点击,响应下下拉菜单里的更 ...