CoreJava(第三章)数组-01

数组

一、For Each

1.格式

for(int element : a){
  System.out.print(element);
}

打印数值a中的每一个元素,一个元素占一行。

2.Arrays.toString

Arrays.toString(a)	// 打印数组中的所有值,用逗号分隔开

3.完整代码

package com.eleven.array;

import java.util.Arrays;

public class ForEachArray {
	public static void main(String[] args) {
		// 定义数组a
		int[] a = { 1, 3, 4, 6 };
		// 循环打印
		for (int element : a) {
			System.out.println(element);
		}
		// 使用Arrays.toString打印出数组里面的所有值
		System.out.println(Arrays.toString(a)); // [1, 3, 4, 6]
	}
}

二、数组初始化

1.格式

int[] smallPries = {1,4,5,6,7,8};	// 创建数组对象,并初始化对象的值为{1,4,5,6,7,8}

三、匿名数组

1.格式

		System.out.println(Arrays.toString(new int[] {1,4,5,5,3}));	// 创建一个匿名对象,初始化值为[1, 4, 5, 5, 3],并打印输出

四、数组拷贝

1.定义

允许将一个数组里面的变量拷贝到另一个数组里面。

2.完整代码

package com.eleven.array;

import java.util.Arrays;

/**
 * 数组拷贝
 * @author eleven
 *
 */
public class ArrayCopy {
	public static void main(String[] args) {
		// 创建一个数组smallPrimes
		int[] smallPrimes = {1,3,4,5,6};
		System.out.println(Arrays.toString(smallPrimes));	// [1, 3, 4, 5, 6]
		
		// 将smallPrimes里面的元素拷贝到luckyNumbers中
		int[] luckyNumbers = smallPrimes;	
		System.out.println(Arrays.toString(luckyNumbers));	// [1, 3, 4, 5, 6]
		
		// 将luckyNumbers中数组下标为2的元素修改为12
		luckyNumbers[2] = 12;
		System.out.println(Arrays.toString(luckyNumbers));	// [1, 3, 12, 5, 6]
		
		// copyOf:将一个数组里面的元素拷贝到一个新的数组中
		int[] newLength = Arrays.copyOf(smallPrimes, smallPrimes.length);
		System.out.println(Arrays.toString(newLength));	// [1, 3, 12, 5, 6]
		
		// 第一个参数表示要拷贝的数组,第二个参数表示拷贝数组的长度(将数组长度扩大2倍)
		smallPrimes =  Arrays.copyOf(smallPrimes,2 * smallPrimes.length);
		System.out.println(Arrays.toString(smallPrimes));	// [1, 3, 12, 5, 6, 0, 0, 0, 0, 0]
		
	}
}

五、数组排序

1.定义

要对数组里面的元素进行排序,可以使用Arrays.sort。

2.举个栗子

产生一个抽奖游戏中随机数值组合。

package com.eleven.array;

import java.util.Arrays;
import java.util.Scanner;

public class ArraySort {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);

		System.out.println("你需要抽多少个数字?");
		int k = in.nextInt();

		System.out.println("你抽中的最高数字是多少?");
		int n = in.nextInt();

		// 用数字1-n填充数组
		int[] numbers = new int[n];
		for (int i = 0; i < numbers.length; i++) {
			numbers[i] = i + 1;
		}

		// 第二个数组
		// 将抽到的数字放到第二个数组中
		int[] result = new int[k];
		for (int i = 0; i < result.length; i++) {
			// 创建随机数
			int r = (int) (Math.random() * n);
			// 在任意位置选取元素
			result[i] = numbers[r];
			// 将最后一个元素移动到随机数的位置
			numbers[r] = numbers[n - 1];
			n--;
		}
		// 数组排序
		Arrays.sort(result);
		System.out.println("祝好运!");
		// 将结果打印输出
		for (int r : result) {
			System.out.print(r);
		}
	}
}
发布了90 篇原创文章 · 获赞 284 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41293896/article/details/103866117
今日推荐