这篇博客主要是复习java数组的相关的知识。
一、数组的定义
数组:一组能够存储相同数据类型值的变量的集合
二、数组的语法
(1)声明
int x[];
(2)声明+开辟内存空间
int []x = new int[3]
(3)声明+开辟内存空间+赋值
int []x = new int[]{3,4,5}
int[] x={1,2,3,4}
public class Shuzu {
public static void main(String args[])
{
//声明一个整型的数组
int []x1;
//为数组分配内存空间
x1=new int[3];
//使用数组,给数组赋值,下标从0开始
x1[0]=10;
x1[1]=20;
x1[2]=30;
//第二种方法:定义一个数组并分配内存空间在赋值
int x2[] =new int[]{1,2,3,4};
int x3[] = {10,11,12,13};
//字符串类型的数组
String [] names = {"梦梦","纯纯","萌萌","爱爱","凤凤"};
//获取数组的长度length函数
System.out.println(names.length);
//打印数组的元素(遍历数组)
for (int i=0;i<names.length;i++)
{
System.out.println("小白的第"+(i+1)+"个女友的名字是"+names[i]);
}
}
}
三、数组中常见的异常
1.空指针异常:没有给数组分配空间便使用数组
2.数组越界异常:超出数组下标的范围
public class ArraysExceptionDemo {
public static void main(String args[])
{
//没有给数组分配空间便使用数组
String []names=null;
System.out.print(names[0]);
//超出数组下标的范围
int [] num={1,2,3,4,5};
System.out.print(num.length);
System.out.print(num[5]);
}
}
运行上述程序便会产生异常:
四、多(二)维数组
编写一个程序,有三个年级,每个年级有四名同学参加比赛,用数组实现分别存储每个年级四名同学的成绩以及平均分。
public class ManyArrayDemo {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int scores[][] = new int[3][4];
float average[]=new float[3];
int sum;
for (int i=0;i<3;i++)
for (int j=0;j<4;j++)
{
scores[i][j]=input.nextInt();
}
for (int i=0;i<3;i++) {
sum=0;
for (int j = 0; j < 4; j++) {
sum += scores[i][j];
}
average[i]=sum/4;
}
for (int i=0;i<3;i++){
System.out.println((i+1)+"班同学的分数为:");
for (int j=0;j<4;j++)
{
System.out.print(scores[i][j]+" ");
System.out.println();
}
System.out.println((i+1)+"班的平均分为"+average[i]);
}
}
}
程序运行如下图所示:
五、编写程序求解数组中的最大值与最小值
public class MaxMinDemo {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.print("请输入元素的的个数:");
int num=input.nextInt();
int array[] =new int[num];
System.out.println("请输入元素:");
for (int i=0;i<num;i++)
{
array[i]=input.nextInt();
}
int max=array[0];
for (int j=1;j<num;j++)
{
if(max<=array[j])
max=array[j];
}
System.out.println("数列中的元素的最大值为:"+max);
int min=array[0];
for (int j=1;j<num;j++)
{
if(min>=array[j])
min=array[j];
}
System.out.println("数列中的元素的最小值为:"+min);
}
}
六、冒泡排序算法
public class BubbleSort {
public static void main(String args[])
{
int num[]={705,826,680,654,696};
int temp;
//控制比较的轮数
for(int i=0;i<num.length-1;i++)
{
//控制每轮比较的次数
for (int j=0;j<num.length-1-i;j++)
{
if (num[j]>num[j+1])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
for (int k=0;k<num.length;k++)
{
System.out.print(num[k]+" ");
}
}
}