Java数组

数组:

  • 声明整形数组:int[] a; int a[];
  • 声明并创建数组:int[] a=new int[10];创建了一个长度为10的数组;
  • 创建一个int数组时,所有的元素都初始化为0;boolean数组的元素会初始化为false;String数组的元素初始化为null;对象数组的元素初始化为null;
    for each循环
    增强的for循环:
    for(int element: a)
    	System.out.println(a[i]);
    

数组初始化

int[] a={1,2,3};

初始化一个匿名数组

new int[]{1,2,3};

数组拷贝

int[] a={1,2,3,4};
int[] b=a; //将数组a拷贝给b
int[] c=Arrays.copyOf(a,a.length); //将数组a,使用Arrays类的方法copyOf拷贝给c

Arrays.copyOf()第二个参数是新数组的长度,这个方法通常用来增加数组的大小:

int[] a={1,2,3,4};
a=Arrays.copyOf(a,2*a.length); //将数组a的长度扩大到之前的2倍

数组排序

int[] a=new int[]{2,1,4,6};
Arrays.sort(a); //使用sort方法给数组排序,这个方法使用了快速排序算法

多维数组
初始化一个多维数组:

int[][] magicSquare=
	{
		{16,3,2,13},
		{5,1,11,0},
		{3,1,4,5},
		(5,2,5,9}
	}

for each循环语句不能自动处理二维数组的每一个元素。他是按照行,也就是一维数组处理的。要想访问一个二维数组所有元素,需要使用两个嵌套的循环

for(int[] row:a)
	for(int[] value:row)
		do something with value

要想快速的打印一个二维数组:

System.out.println(Arrays.deepToString(a));
public class LotteryArray {

	public static void main(String[] args) {
		final int NMAX = 10;

		int[][] odds = new int[NMAX + 1][];
		for (int n = 0; n <= NMAX; n++) {
			odds[n] = new int[n + 1];
			System.out.println(odds[n].length);
		}

		for (int n = 0; n < odds.length; n++) {
			for (int k = 0; k < odds[n].length; k++) {
				int lotteryOdds = 1;
				for (int i = 1; i < k; i++)
					lotteryOdds = lotteryOdds * (n - i + 1) / i;
				odds[n][k] = lotteryOdds;
			}

			for (int[] row : odds) {
				for (int odd : row)
					System.out.printf("%4d", odd);
				System.out.println();
			}
		}
	}

}

   1
   1   1
   1   1   2
   1   1   3   3
   1   1   4   6   4
   1   1   5  10  10   5
   1   1   6  15  20  15   6
   1   1   7  21  35  35  21   7
   1   1   8  28  56  70  56  28   8
   1   1   9  36  84 126 126  84  36   9
   1   1  10  45 120 210 252 210 120  45  10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值