Java 数组扩容问题:实现动态的给数组添加元素效果,实现对数组扩容
原始数组 int[] arr = {1,2,3}
增加的元素 4
,直接放在数组的最后 arr = {1,2,3,4}
arr1
arr2
,比 arr1
的长度长 1
arr1
的长度内,把 arr1
的值赋值给 arr2
arr2
的最后一个位置赋值为 4
,也就是要加入的数据arr2
是临时的,最终要改变的是 arr1
,arr2
的值赋值给 arr1
。arr2
的值覆盖 arr1
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的值覆盖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应用程序。典型的原因是什么?