数组(一维数组)
数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。
数组的特点:
数组可以是一维数组、二维数组或多维数组。
数值数组元素的默认值为 0,而引用元素的默认值为null。
数组的索引从 0 开始,如果数组有 n 个元素,那么数组的索引是从 0 到(n-1)。
数组元素可以是任何类型,包括数组类型。
数组类型是从抽象基类 Array 派生的引用类型。
一维数组
当数组中每个元素都只带有一个下标时,这种数组就是“一维数组”。一维数组实质上是一组相同类型数据的线性集合,是数组中最简单的一种数组。
数组是引用数据类型,引用数据类型在使用之前一定要做两件事情:声明和初始化。
创建一维数组
//声明数组方式一
type [] arrayName;
//声明数组方式二
typearrayName [];
分配空间
声明了数组,只是得到了一个存放数组的变量,并没有为数组元素分配内存空间,不能使用。因此要为数组分配内存空间,这样数组的每一个元素才有一个空间进行存储。
分配空间的语法格式:
arrayName=newtype[size]; // 数组名 =new 数据类型[数组长度];
初始化一维数组
使用 new 指定数组大小后进行初始化
arrayName=newtype[size]; // 数组名 =new 数据类型[数组长度];
使用 new 指定数组元素的值
type[] arrayName=newtype[]{值1,值2,值3,值4,...,值n};
直接指定数组元素的值
type[] arrayName= {值1,值2,值3,...,值n};
数组访问:
通过下标访问遍历数组
实例:1、使用数组随机生成简单验证码
publicstaticvoidmain(String[] agrs){
//调用创建验证码方法
Make_yzm();
}
publicstaticvoidMake_yzm() {
//随机生成验证码
//制作验证码
String[] code=newString[62];
//填写26个小写字母
for (inti=97; i<=122; i++) {
code[i-97] = (char) i+"";
}
//填写26个大写字母
for (inti=65; i<=90; i++) {
code[i-65+26] = (char) i+"";
}
//填写0~9的数字
for (inti=0; i<=9; i++) {
code[i+52] = (char) i+"";
}
//定义数组存储随机生成的验证码
String[] yzm=newString[6];
Randomrandom=newRandom();
//便利6个随机数
for (inti=0; i<yzm.length; i++) {
intindex=random.nextInt(62);
yzm[i] =code[index];
}
System.out.println(Arrays.toString(yzm));
}

实例:2、使用数组设计 计算两个随机数的运算的验证码
publicstaticvoidmain(String[] agrs){
//调用随机计算两个数的运算的方法
compute();
}
publicstaticvoidcompute() {
//随机计算两个数值之间的运算(+-*/)
int[] num= {1, 2, 3, 4, 5, 6, 7, 8, 9};
char[] symbol= {'+', '-', '*', '/'};
//定义接受随机数的数组
Randomrandom=newRandom();
intnumber=0;
int[] tmp=newint[2];
for (inti=0; i<tmp.length; i++) {
//随机下标,存储数字
intindex=random.nextInt(num.length);
tmp[i] =num[index];
}
//随机下标,存储字符
intindex2=random.nextInt(symbol.length);
charopt=symbol[index2];
switch (opt) {
case'+':
number=tmp[0] +tmp[1];
break;
case'-':
if (tmp[0] >tmp[1]) {
number=tmp[0] -tmp[1];
} else {
number=tmp[1] -tmp[0];
}
break;
case'*':
number=tmp[0] *tmp[1];
break;
case'/':
number=tmp[0] /tmp[1];
break;
}
System.out.println(tmp[0] +String.valueOf(opt) +tmp[1] +"=?");
Input(number);
}
publicstaticvoidInput(intnub) {
//录入用户输入的数据
Scannerscanner=newScanner(System.in);
System.out.println("请输入您计算的结果");
intcount=scanner.nextInt();
judgment(count,nub);
}
publicstaticvoidjudgment(intcount,intnub) {
if (count==nub) {
System.out.println("您输入的结果是正确的,验证成功,正在进入网站......");
} else {
System.out.println("您输入的结果时错误的.");
System.out.println("选择1:如果想重新输入结果请按1");
System.out.println("选择2:如果想重新生成,请按2");
System.out.println("选择3:如果学历不够不会计算,请按3");
Scannerscanner=newScanner(System.in);
intkll=scanner.nextInt();
if (kll==1){
Input(nub);
}elseif (kll==2){
compute();
}else{
System.out.println("相信你能学会,再见!");
}
}
输入结果正确的情况:

输入结果错误的情况(3种):
情况1:

情况2:

情况3:
