数组
一维数组
声明:
数据类型[] 数组名;
或 数据类型 数组名[];
声明数组时,不能在方括号中指定数组的元素个数
一维数组的创建
a = new int[5];
//数组可使用new关键字来创建,系统会创建数组并为数组分配存储空间,且数组中的每一个元素会被自动赋一个默认值。
//意思就是这样创建了一个a=[1,2,3,4,5],这是默认的,可以修改
//[5]代表创建数组的大小为5
//int定义数组的数据类型
//除了使用new关键字创建数组外,还可以利用初始化声明数组的变量,创建数组对象
int[] a = {1,2,3,4,5}
一维数组的初始化内存的分配
静态初始化:char [] c = {"a","b"}
在创建数组的时候进行赋值
动态初始化:int[] a = new int[5]
先定义一个长度为5的数组,然后再给每个数组中的值赋值
内存的分配:
基本数据类型变量的而数据是直接保存在栈中的,引用数据类型变量在栈中保存了一个指针,而将实际数据保存在堆中,栈中的指针指向堆中的数据,当申明一个一维数组时,在栈中生成一个与该数组名相同的引用变量(指针)
java内存分配与回收机制
一维数组的引用
数组名[数组下标]
int[] a = new int[3];
//如果调用a[3]就会出现错误
//数组的下标从0到2
java.lang.ArrayIndexOutOfBoundsException
多维数组
数据类型[] [] 数组名;
或 数据类型 数组名[] [];
数组名=new 数据类型[第一维度长度] [第二维度长度]
a=new int[3][2]
//三行两列
//从高维开始
//数组名 = new 数据类型[第一维度的长度][];
//数组名[0] = new 数据类型[第二维度的第一行长度];
//数组名[1] = new 数据类型[第二维的第二行长度];
//其实就相当于一个表格
行———->第一维度
每一行的列———>第二维度的第几行
package test;
import java.util.Scanner;
public class Example4_1{
public static void main(String[] args){
float[] a = new float[10];
float sum,ave,max,min;
int i;
Scanner sc = new Scanner(System.in);
System.out.println("请依次输入10位同学的数学成绩:");
//通过数组的length属性获得数组长度
for (i=0;i<a.length;i++){
a[i]=sc.nextFloat();
}
sum = 0;
max = a[0];
min = a[0];
for (i=0;i<a.length;i++){
sum +=a[i];
if (a[i]>max)
max=a[i];
if(a[i]<min)
min = a[i];
}
ave = sum/a.length;
System.out.println("平均分:"+ave+",最高分:"+max+",最低分:"+min);
}
}
//将一个数组的内容按颠倒的次序重新存放
public class Exam{
public static void main(String[] args){
int[] a =new int[7];
int i,temp;
Scanner sc = new Scanner(System.in);
System.out.println("请输入7个整数:");
for(i=0;i<a.length;i++)
a[i]=sc.nextInt();
System.out.println("交换前:");
for(i=0;i<a.length;i++)
System.out.print(a[i]+"\t");
System.out.println();
for (i=0;i<a.length/2;i++){
temp = a[i];
a[i]=a[a.length-i-1];
a[a.length-i-1]=temp;
}
System.out.println("交换后:");
//增强型for循环遍历数组,优点不需要关心数组下标
for(int x:a)
System.out.print(x+"\t");
System.out.println();
}
}
//通过键盘给一个3行4列的二维数组输入整型数值,并按表格形式输出此数组的所有元素
public class Exam{
public static void main(String[] args){
int [][] a = new int [3][4];
Scanner sc = new Scanner(System.in);
int i,j;
System.out.println("");
}
}
//通过键盘给一个3行4列的二维数组输入整型数值,并按表格形式输出此数组的所有元素。
public class Example{
public static void main(String[] args){
int [][] a= new int[3][4];
Scanner sc = new Scanner(System.in);
int i,j;
System.out.println("请输入12个整数:");
for(i=0;i<a.length;i++)
for(j=0;j<a.length;j++)
a[i][j]=sc.nextInt();
System.out.println("表格形式输出数组:");
for (i=0;i<a.length;i++){
for (j=0;j<a.length;j++)
System.out.print(a[i][j]+"\t");
System.out.println();
}
}
}