对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]+" ");
    }
  }
}

写了半天,没有功能也有苦劳,请默默地点个赞,谢谢!

转载于:https://www.cnblogs.com/maopao55555/p/6083399.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值