java数组的扩充

这次通过编程遇到了一个问题:“要求是任意输入1到100的数,以0作为输入结束的标志。”
这意味着:
1· 数组要可以根据输入的数据改变大小
2· 可以判断最后输入位置上的数据为0
分别来解决:
1)先了解一下java数组的特性:
在java中的数组一旦被定义,数组的大小是不能改变的。
如: int[ ] a = new int[5];
或者: int[ ] a;
a = new int[5];
这意味着整型数组a的大小为5。
设a的初始值为{1,2 ,3,4,5}
这时,如果重新定义它的长度
如:a = new int[10];
数据将被清空。 数组 a 不是{1,2,3,4,5,0,0,0,0,0}
而是{0,0,0,0,0,0,0,0,0,0}
根据这些特性,来对数组a进行扩充:
1.要另外new一个新的数组b(一般要比数组a大);2.要将数组a的数据拷贝到数组b;3.将数组a的首地址指向数组b的首地址,即a = b;
代码如下:int[ ] b ; b = java.util.Arrays.copyOf(a, 20); a = b ;
这里用了Arrays类的copyOf方法,这个方法有两个参数,要说明一个数组作为拷贝的原本,要说明新的数组(数组b)的长度。

2)在java里从控制台读取数据,用的是Scanner类

import java.util.Scanner;
public static void main(String[ ] args){
	Scanner cs = new Scanner(System.in);
		int k = 0 ;
		while(true){
			a[k] = cs.nextInt();// 赋值
			k++;
			if(a[k]==0) // 判断
			break;
		}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值