A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

熵增

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 熵增 初级黑马   /  2018-10-9 15:01  /  571 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 熵增 于 2018-10-9 15:05 编辑

day05 课后习题的第十题“数组去重”的主要思想是需要将循环与判断语句结合使用。
技术路线在图片中,代码如下。
public class Text10_1 {
public static void main(String[] args) {
   int [] num={9,10,6,6,1,9,0,3,5,6,4,4,100,10,110};
   System.out.println("原数组:");
   System.out.print("[");
   for(int i=0;i<num.length;i++)
      {
      if(i<num.length-1)
         {
            System.out.print(num+",");
         }else System.out.println(num+"]");
      }
   //建立新的中间数组mid[num.length],记录num[]中出现重复的值的位置。
   int [] mid=new int[num.length];
   for(int i=0;i<num.length-1;i++)
      {
      for(int j=i+1;j<num.length;j++)
      if(num==num[j])            //在num[]数组中,如果下标i位置处的值和下标j处的值相同,
         {                         // 则在mid[j]处计作1,这样在mid[]数组中值为1的元素的下标就是num[]出现重复值的下标
            mid[j]=1;
         }
      }
   //建立新数组newNum[lengthNum],将num[]中不重复的值赋给它midTwo[]。
   int lengthNum=0;
   for(int i=0;i<num.length;i++)
      {
         if(mid==0){++lengthNum;}    //确定lengthNum的数值即新数组newNum[]的长度
      }
   
   int [] newNum=new int[lengthNum];
   for(int j=0,i=0;i<num.length;i++)  //通过mid[]的重复值位置信息,将num[]剔除重复值赋值给newNum[]
      {
         if(mid!=1)
         {
         newNum [j]=num;
         j++;
         }
      }
   System.out.println("跳过重复值打印:");
   for(int i=0;i<num.length;i++)
      {
      if(mid!=1)System.out.print(num+" "); //跳过num[]中的重复值打印
      }
   System.out.println();
   System.out.println("=========================================");
   System.out.println("剔除重复值后的新数组:");
   System.out.print("[");
   for(int i=0;i<lengthNum;i++)
      {
         if(i<lengthNum-1)
         {
            System.out.print(newNum+",");  //打印剔除重复值后的newnum[]数组
         }else System.out.println(newNum+"]");
      }
   
}
}

绘图1.jpg (377.38 KB, 下载次数: 1)

绘图1.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马