当前位置: 首页 > 知识库问答 >
问题:

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

东郭思远
2023-10-04

题目描述

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个答案

张建华
2023-10-04

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

//用arr2的值覆盖arr1arr1 = 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

 类似资料:
  • 我下面的教程部分处理打印数组列表的元素。当处理小列表时,该程序完全按照我的预期运行。然而,当输入较大的数字时,字符串格式(我相信)会导致一些奇怪的结果。 我的代码如下: 使用主方法类: 输出(我只引用了足够多的内容)是: 我知道我用完了字母字符,这一行的格式: 仅用于处理“X###”格式的座位。 我想了解的是为什么会出现奇怪的字符(~"和'等)。)。显然,格式不合适。但是为什么它专门产生这个输出呢

  • 我在登录测试方法中面临奇怪的执行行为。我在selenium网格下运行这段代码。网格配置为独立服务器。因此,首先,我使用批处理文件启动selenium网格(Hub\Node)以通过测试执行。 代码:1. pojDataSource.java: clsConstant。java: 模块测试。java: 当我在Eclipse IDE中以调试模式执行代码时,它向我显示了奇怪的行为。首先,它启动浏览器并打开

  • 问题内容: 我有一段代码会生成一些随机数并在控制台上打印出来。但是我对它所打印的图案感到好奇,例如, 结果:0 1 2 3 4 5 6 7 8 9- 新行中的每个数字。 如果您稍微更改此代码!喜欢, 结果:8 9 2 2 10 10 8 8 0 0- 换行中的每个数字。 根本不是随机的0123456789是什么原因呢? 问题答案: 产生序列的原因是,通过使用其下一种方法,使Random可预测具有可

  • 问题内容: 为什么在switch语句中imho缺少的“ case”(关键字)缩进被认为是好的样式? 在几乎每个IDE中,似乎没有缩进“ case”关键字是默认的格式设置选项: 虽然我发现这种格式更直观: 这背后有逻辑吗? 问题答案: 这些案例在逻辑上是标签。许多人将标签放置在与其所在的块相同的缩进级别上。我认为,这样可以更轻松地阅读文本。 我将其与可以滚动浏览的时间轴进行比较。时间轴本身上有标记,

  • 问题内容: 所有! 我在LinkedBlockingQueue中发现了奇怪的代码: 谁能解释为什么我们需要局部变量h?它对GC有什么帮助? 问题答案: 为了更好地了解发生了什么,让我们看看执行代码后列表的样子。首先考虑一个初始列表: 然后指向和指向: 然后指向和指向: 现在,实际上我们知道只有一个指向第一个元素的活动引用,它本身就是(),并且我们还知道GC收集的对象不再具有活动引用,所以当方法结束

  • 我得到一个当我运行我的Java应用程序。典型的原因是什么?