我作为一个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数组中去除重复项程序分析的更多相关文章

  1. [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 ...

  2. [LeetCode] Remove Duplicates from Sorted Array 有序数组中去除重复项

    Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...

  3. [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 ...

  4. [LeetCode] Remove Duplicates from Sorted Array II 有序数组中去除重复项之二

    Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...

  5. [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 ...

  6. [LeetCode] 26. Remove Duplicates from Sorted Array ☆(从有序数组中删除重复项)

    [LeetCode] Remove Duplicates from Sorted Array 有序数组中去除重复项 描述 Given a sorted array nums, remove the d ...

  7. LeetCode(26): 删除排序数组中的重复项

    Easy! 题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间 ...

  8. Java实现 LeetCode 80 删除排序数组中的重复项 II(二)

    80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...

  9. Java实现 LeetCode 26 删除排序数组中的重复项

    26. 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...

随机推荐

  1. 正则表达式 判断 ip:端口 形式

    <html> <head> </head> <body> ip:port<input type="" name="z ...

  2. Flex 1046: 找不到类型,或者它不是编译时常数;1180: 调用的方法 CompPropInfo 可能未定义

    导入项目之后一直报这个错误, 1046: 找不到类型,或者它不是编译时常数: 1180: 调用的方法 CompPropInfo 可能未定义 想这应该是没有把当前这个类编译进项目当中,找了半天也没有找到 ...

  3. MysqlNDB集群配置

    为了避免不必要的资源分配,默认情况下是不启动ndbcluster引擎.

  4. gloolooer

    V1.2gloolooer金[http://sh.yun.ftn.qq.com/ftn_handler/0a9043ee7aa120d3c864281211dff2f08efe5e2d42438ec5 ...

  5. unity播放视频

    方法一: 1.用一个Quad(或者其他的)做屏幕,调整摄像机位置和它的大小,使它显示在你想要的区域 2.将视频拖入Unity,拖入,拖入,拖入:不是将视频直接copy到指定的文件夹中 3.将下面脚本挂 ...

  6. WinForm中重绘TabControl选项卡标题

    最近开发WinForm频繁使用了TabControl控件,这个控件的选项卡没有BackgroundImage这个属性,那么如何为其各个选项卡添加背景图片呢?(这里说的是每个TabPage的头部,也就是 ...

  7. Android Studio中Button等控件的Text中字符串默认大写的解决方法

    初学Android的时候,在Android Studio中xml里面添加一个Button.EditText等控件后,它的Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是 ...

  8. 剑指Offer-【面试题04:替换空格】

    package com.cxz.question4; /* * 请实现一个函数,把字符串中的每个空格替换成"%20",例如"We are happy.",则输出 ...

  9. 怎样用conda安装opencv

    首先用Anaconda是因为方便(管理方便,包安装真心不方便).下面是我的安装过程: 首先使用如下命令安装opencv conda install -c https://conda.binstar.o ...

  10. CozyRSS开发记录21-默认RSS源列表

    CozyRSS开发记录21-默认RSS源列表 1.默认列表 在第一次使用CozyRSS的情况下,我们让它内置五个RSS源吧: 2.响应RSS源的更新 先不处理RSS源列表项的点击,响应下下拉菜单里的更 ...