2021-3-6数组续

这篇博客详细介绍了Java中的数组拷贝、扩展及排序操作,并提供了使用Arrays.copyOf方法复制数组的示例。此外,还讲解了如何通过Math.random生成随机数来填充并排序数组。最后,讨论了多维数组的声明、初始化和访问方式,以及如何遍历二维数组的每个元素。
摘要由CSDN通过智能技术生成

数组拷贝:

在Java中,允许将一个数组变量拷贝给另一个数组变量
代码片段

	int[] smallPrims = {1,2,3,4,5,6};
	int[] luckyNumber = smallPrims;
	luckyNumber[5] = 12;
	System.out.println(smallPrims[5]);//此时smallPrims[5]也为12

如果希望将数组中的所有值都拷贝到一个新的数组,那么就要使用Arrays类的copyOf方法

	int[] copiedLuckyNumber = Arrays.copyOf(luckyNumber, luckyNumber.length);
	System.out.println(Arrays.toString(copiedLuckyNumber));

增加数组的大小

luckyNumber = Arrays.copyOf(luckyNumber, 2*luckyNumber.length);

数组排序:

		Scanner in = new Scanner(System.in);
		System.out.println("输入需要的数量");
		int k = in.nextInt();//输入需要的最大数量
		System.out.println("最大数");
		int n = in.nextInt();
		int[] num = new int[n];//定义数组num,其长度为键盘输入的n
		for(int i = 0;i<num.length;i++) {
			num[i] = i+1;
		}
		int[] result = new int[k];//定义一个新的数组存放需要抽取的数
		for(int i = 0;i<result.length;i++) {
			int r = (int)(Math.random()*n);//利用math.random方法返回0~1的随机浮点数,用n乘以则得到一个从0~n-1的随机数
			result[i] = num[r];//将result的第i个元素设置为num[r]存放的数值,最初是r+1
			num[r] = num[n-1];//确保不会再抽取那个数值,因为所抽取的数值必须不相同
			n--;
			}
		Arrays.sort(result);//每次抽取的都是下标而不是实际的值。下标指向包含尚未抽取过的数组元素,在抽取了K个值之后,就可以对result数组进行排序了。
		System.out.println("排序");
		for(int r:result)
			System.out.println(r);

多维数组:

多维数组将使用多个下标访问数组元素,它适用于表示表格以及更加复杂的排列形式。
声明一个二维数组:

double[] [] balance;

与一维数组一样,在没有调用new进行初始化之前不能使用它:

balance = new double[a][b];

如果知道数组元素,可以不调用new直接对多维数组进行初始化:

int[][] num = { 
	{1,2,3,4,5}
	{7,8,9,10,11}
};

一旦数组被初始化,就可以使用两个方括号访问每一个元素

balance[i][j]

for each 循环语句不能自动处理二维数组的每个元素,它是按照行(一维数组进行处理)想要访问二维数组a的每个元素,需要使用两个嵌套的循环

for(double[] row : a)
	for(double value :row)
	......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值