代码为什么会出现奇怪的数据?

题目描述

Java 数组扩容问题:实现动态的给数组添加元素效果,实现对数组扩容
原始数组 int[] arr = {1,2,3}
增加的元素 4,直接放在数组的最后 arr = {1,2,3,4}

题目来源及自己的思路

  1. 定义 arr1
  2. 定义 arr2,比 arr1 的长度长 1
  3. arr1 的长度内,把 arr1 的值赋值给 arr2
  4. arr2 的最后一个位置赋值为 4,也就是要加入的数据
  5. 因为 arr2 是临时的,最终要改变的是 arr1
    所以需要把 arr2 的值赋值给 arr1
  6. arr2 的值覆盖 arr1
  7. 输出查看效果

相关代码

public class AddJavaJava {

public static void main(String[] args) {

//定义arr1

int arr1[] = {1,2,3};

//定义arr2,比arr1a的长度长1

int arr2[] = new int[arr1.length+1];

//在arr1的长度内,把arr1的值赋值给arr2

for(int i = 0;i<arr1.length;i++) {

arr2[i] = arr1[i];

}

arr2[arr2.length-1] = 4;//arr2的最后一个位置赋值为4,也就是要加入的数据

//因为arr2是临时的,最终要改变的是arr1.

//所以需要把arr2的值赋值给arr1。

//用arr2的值覆盖arr1

arr1 = arr2;

for(int i =0;i< arr1.length;i++) {

System.out.println(arr1[i]+'\t');

}

}

}

你期待的结果是什么?实际看到的错误信息又是什么?

期待值:1 2 3 4
实际值:10 11 12 13


回答:

数组里面的值的确是1,2,3,4, 只不过你打印出的值是10,11,12,13

//用arr2的值覆盖arr1

arr1 = arr2;

for(int i =0;i< arr1.length;i++) {

- System.out.println(arr1[i]+'\t');

+ System.out.println(arr1[i]);

}

/t 转成数字就是9, 1,2,3,4 加上9就是你之前输出的结果

System.out.println((int)'\t'); // 9

https://baike.baidu.com/item/ASCII/309296?fr=ge_ala

以上是 代码为什么会出现奇怪的数据? 的全部内容, 来源链接: utcz.com/p/945352.html

回到顶部