创建数组:int[] a=new int[100]
数组长度可以不是常量,new int[n]会创建一个长度为n的数组,创建一个数字数组时,所有元素都初始化为0,,boolean数组的元素会初始化为false。
想要获得数组中的元素个数,可以使用array.length。例如:
for(int i=0;i<a.length;i++)
System.out.println(a[i]);
for each循环
Java有一种很强的循环结构,可以用来依次处理数组中的每个元素(其他类型元素集合亦可)。For each 循环语句的循环变量将会遍历数组中的每一个元素,而且不需要使用下标值,更加简洁且不易出错,这种增强for循环的语句格式为:
for(variable:collection) statement
例如:
For(int element : a)
System.out.println(element);
打印数组a的每一个元素。
提示:有个更简单的方式打印数组中的所有值,即利用Arrays类的toString方法。调用Arrays.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号隔开,例如:”[2,3,5,7,11,13]”。要想打印数组,可以调用:
System.out.println(Arrays.toString(a));
数组拷贝
在Java中,允许将一个数组变量拷贝给另一个数组变量,这时,两个变量的引用相同,例如:
Int[] a=b;
a[2]=5;//此时,b[3]也等于5
如果希望将一个数组的所有值拷贝到一个新的数组,要使用Arrays类中的copyOf方法:
int copiedA=Arrays.copyOf(a,a.length);
第二个参数是新的数组长度,通常用来增加数组大小,因为数组一旦被定义下来,大小不可改变。
A=Arrays.copyOf(a,2*a.length);
如果数组元素为数值型,多于的元素将被赋值为0,如果元素是布尔型,则将赋值为false,想饭,如果长度小于原始数组的长度,值拷贝最前面的数据元素。
下面是一个例子:
抽彩游戏:从40以内的整数随机 抽取6个数,并将这6个数按从小到大排序好
import java.util.*;
public class Lotter {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.print("请输入要抽取的数字个数:");
int k=in.nextInt();
System.out.print("请输入可以抽取的最大数字:");
int n=in.nextInt();
int[] numbers=new int[n];
for(int i=0;i<numbers.length;i++){
numbers[i]=i+1;//定义第一个数组,存放0到n的整数,下标从0开始
}
int[] result=new int[k];//定义第二个数组,用来存放抽取出来的数
for(int i=0;i<result.length;i++){
int r=(int)(Math.random()*n);//取得0到n-1之间的随机数
result[i]=numbers[r];//将result中的随机设置为numbers[r]中存放的数值
numbers[r]=numbers[n-1]; //将数组中最后一个数值改写numbers[r],并将n减1
n--;
}
Arrays.sort(result);
for(int r:result)
System.out.println(r);
}
}
输出结果: