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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chen666888 初级黑马   /  2017-12-25 23:54  /  1402 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


         127日预科班的第一个代码”helloWorld”开始,我向Java迈出了第一步从课堂上的自我介绍开始,仿佛又回到了学校的学生时代(不过在这里本来就是学生啦~)…在学习的过程中,难免会遇到问题,我一般都是自己先看错误提示,检查自己的语法是否正确,标点符号是否是中文输入法,其次思考是不是逻辑出现问题,只有自己真的解决不了了,才去请教同学或者老师我觉得这样的话,我会对这些错误印象更加深刻,以后遇到了,就都不是问题了
         我分享一个对我来说记忆深刻的题目哈.当时想了好久都没想到怎么解决不重复的问题,经过老师的讲解,才恍然大悟
package com.itheima.test02;
import java.util.Random;
//1.创建两个长度为5的数组,数组内元素为随机生成的、不重复的 1-100之间的偶数(每个数组内部的元素一定是不重复的1-100之间的偶数,但两个数组间可以有重复的)。
//2.定义一个方法unionArr(描述如下),传入两个数组,方法中将两个数组元素合并到一个新数组中,并且将新数组的内容打印到控制台上           
//       public static int[] unionArr(int[]arr1,int[] arr2)
//       功能: 两个数组的元素存入到一个新数组中并返回
//3.程序运行结果(因为数字随机生成,这里只是举个例子:)
//
//       原数组1[78, 48, 20,94, 34]
//       原数组2[32, 10, 98,4, 52]
//       合并后数组:[78, 48, 20, 94, 34, 32, 10, 98, 4, 52]
public classTest02 {
  public static void main(String[] args) {
     
     //创建长度为5的数组
     int[] arr1 = new int[5];
     int[] arr2 = new int[5];
     numArr(arr1);
     numArr(arr2);
     System.out.print("原数组1:");
     printArr(arr1);
     System.out.print("原数组2:");
     printArr(arr2);
     
     int[] arr3 = unionArr(arr1, arr2);
     System.out.print("合并后数组:");
     printArr(arr3);
  }
  
  public static void numArr(int[] arr) {
     //创建随机数对象
     Randomrd = new Random();
     //数组内元素为随机生成的、不重复的 1-100之间的偶数
     int count = 0;//计数器
     while(count < 5) {
       int num1 = rd.nextInt(100) +1;
       boolean bl = isTrue(arr, num1);
       if (num1 %2 == 0 && !bl) {
         arr[count] = num1;
         count++;
       }
     }
  }
  //判断数组中是否有相同的元素.
  public static boolean isTrue(int[] arr,int num) {
     for (int i = 0; i < arr.length; i++) {
       if (arr[i] == num) {
         return true;
       }
     }
     return false;
  }
  
  //定义一个方法unionArr(描述如下),传入两个数组,方法中将两个数组元素合并到一个新数组中,
  //并且将新数组的内容打印到控制台上
  public static int[] unionArr(int[] arr1,int[] arr2) {
     int[] arr3 = new int[arr1.length + arr2.length];
     
     for (int i = 0; i < arr1.length; i++) {
       //arr3数组中传入arr1数组的每个元素
       arr3[i] = arr1[i];
     }
     
     for (int i = 0; i < arr2.length; i++) {
       //arr3数组中传入arr2数组中的每个元素
       arr3[arr1.length + i] = arr2[i];
     }
     
     return arr3;
  }
  //程序运行结果
  public static void printArr(int[] arr) {
     System.out.print("[");
     for (int i = 0; i < arr.length; i++) {
       if (i == arr.length - 1) {
         System.out.println(arr[i] + "]");
       }else {
         System.out.print(arr[i] + ", ");
       }
     }
  }
}
那时候刚学到数组这个知识点运用起来还有难度虽然现在不能说顺手拈来,但至少一般的小问题还是可以解决的……现在已经学到面向对象了,跟之前的面向过程编程思想不一样虽然有时候还会用面向过程的思想考虑问题,不过我相信通过以后多练,多学对于面向对象的思维方式肯定会更加清晰今天先写到这里哈写得不好,请多多包涵!~~

1 个回复

正序浏览
加油!看好你哦!希望就业班更加努力,然后顺利找到一份心仪的offer呢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马