一维数组的声明、初始化和使用
第一步:声明
声明的第一种方式:数组元素类型[] 数组名;
声明的第二种方式:数组元素类型 数组名[];
注意:没有初始化的数组是无法使用的。(可以初始化为null)
第二步:初始化
初始化的时间:
可以在声明的时候初始化
也可以先声明后初始化
初始化的方式:(初始化的时候必须确定数组的长度)
第一种方式:int[] shuzu = new int[3];
第二种方式:int[] shuzu = new int[]{3,24,44};
第三种方式:int[] shuzu = {24,67.34};
第三步:使用
赋值
数组内填充统一的数字(如都填充100):Arrays.fill(b,100);
练习
一、遍历一个数组中的所有元素,并输出出来
public class Practice1{
public static void main(String[] args){
int [] array = {11,563,25,764,2626,67475,3};
for(int i=0;i<array.length;i++)
System.out.println(array[i]);
}
}
二、请将'A','B','C'存入数组,然后再输出
public class Practice2{
public static void main(String[] args){
char [] array = {'A','B','C'};
for(int i=0;i<array.length;i++)
System.out.println(array[i]);
}
}
三、复制数组,将数组里面的数据全部复制到另一个数组里面
public class Practice3{
public static void main(String[] args){
char[] a= {'A','B','C'};
char[] b=new char[4];
for(int i=0;i<a.length;i++){
b[i]=a[i];
}
for(int i=0;i<b.length;i++){
System.out.println(b[i]);
}
}
}
四、取得一个数组里面的最大值和最小值
public class Practice4{
public static void main(String[] args){
int[] a= {3,6534,24,2,5436,224,34,1,53,65,7};
int max,min;
min=a[0];
max=a[0];
for(int i=0;i<a.length;i++){
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
System.out.println("max is:"+max);
System.out.println("min is:"+min);
}
}
五、把数组里面的元素倒置({234,3,34,25,3}->{3,25,34,2,234})
public class Practice5{
public static void main(String[] args){
int[] arrays={234,3,34,25,3};
for(int i=0;i<arrays.length/2;i++)
{
int temp=arrays[i];
arrays[i]=arrays[arrays.length-i-1];
arrays[arrays.length-i-1]=temp;
}
for(int i=0;i<arrays.length;i++)
System.out.print(arrays[i]+" ");
System.out.println();
}
}
六、现在有如下一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
public class Practice6{
public static void main(String[] args){
int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int[] newArr=new int[20];
int j=0;
for(int i=0;i<oldArr.length;i++)
{
if(oldArr[i]!=0)
newArr[j++]=oldArr[i];
}
for(int i=0;i<j;i++)
System.out.print(newArr[i]+" ");
System.out.println();
}
}
七、数据查找,有一个数组,里面存储的是整数,从这个里面查找一个指定整数,找到这个整数所在位置(索引位置)。(查找第一个出现的位置)
import java.util.Scanner;
public class Practice7{
public static void main(String[] args){
int[] arr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
Scanner s=new Scanner(System.in);
int a=s.nextInt();
int index=-1;
for(int i=0;i<arr.length;i++)
{
if(arr[i]==a)
{
index=i;
break;
}
}
System.out.println(index);
}
}
二维数组的声明、初始化和使用
第一步:声明
声明的第一种方式:数组元素类型[][] 数组名;
声明的第二种方式:数组元素类型 数组名[][];
注意:没有初始化的数组是无法使用的。(可以初始化为null)
第二步:初始化
初始化的时间:
可以在声明的时候初始化
也可以先声明后初始化
初始化的方式:
第一种方式:int[][] shuzu = new int[m][n];
第二种方式:int[][] shuzu = {{w,t,e},{b,d},{g,d,h}};
练习
一、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},计算并输出学生的平均成绩。
public class Practice1{
public static void main(String[] args){
int[] arr={72,89,65,58,87,91,53,82,71,93,76,68};
double ave,sum=0.0;
for(int i=0;i<arr.length;i++)
sum+=arr[i];
ave=sum/arr.length;
System.out.println(ave);
}
}
二、在歌唱比赛中,共有10位评委进行打分,在计算歌手得分,去掉一个最低分,然后剩余的8为评委的分数进行平均,就是该选手的最终得分。输入每个评委的评分,求某选手的得分。
import java.util.Scanner;
public class Practice2{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
int[] arr=new int[10];
for(int i=0;i<10;i++)
arr[i]=s.nextInt();
int min=arr[0],max=arr[0],sum=0;
for(int i=0;i<arr.length;i++)
{
if(arr[i]>max)
max=arr[i];
if(arr[i]<min)
min=arr[i];
sum+=arr[i];
}
sum=sum-max-min;
System.out.println((float)sum/8);
}
}
三、声明一个int型数组,循环接收8个学生的成绩,计算这8个学生的总分及平均分、最高分和最低分。
import java.util.Scanner;
public class Practice3{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
int[] arr=new int[8];
for(int i=0;i<8;i++)
arr[i]=s.nextInt();
int min=arr[0],max=arr[0],sum=0;
float ave;
for(int i=0;i<arr.length;i++)
{
if(arr[i]>max)
max=arr[i];
if(arr[i]<min)
min=arr[i];
sum+=arr[i];
}
ave=(float)sum/8;
System.out.println("sum is"+sum);
System.out.println("ave is"+ave);
System.out.println("max is"+max);
System.out.println("min is"+min);
}
}