数组:数组是程序中用来批量存储数据的存储形式,放上用一个名字存储一组相同属性的数据,用下标区分各个数据,数组一但定义,长度就是固定的。java中一般定义数组格式为
数据类型 [ ]数组名=new 数据类型 [数组长度];
1.首先在类中实现简单一维数组的存储与提取,一位数组就如同在一排座位上坐一群人,估计人数然后排放好座位并编号,后面就可以坐人了,坐好了还可以按照编号找出某个位置上的那个人;
定义一个类并在类中定义对象属性和数组
public class Student { static Student st = new Student();// 创建一个Student对象 private String name;// 定义对象姓名属性 String[] stu2 = new String[5];// 定义一个存储5个字符串变量的数组 int[] stu1 = new int[5];// 定义一个存储5个整形变量的数组 private int num;// 定义一个变量 static int i = 0;// 定义一个数用于存储和提取数组是进行循环 /* * 定义主函数 */ public static void main(String[] args) { } }
下面对数组存储随机数,将存储整形变量的操作写在一个setName方法中,存储字符串的操作写在setName方法中
//实现字符串的存储 public void setNumber(){ System.out.println("请输入第"+(i+1)+"个学生的学号"); java.util.Scanner s1=new Scanner(System.in);//实例化一个系统中的输入对象 stu1[i]=s1.nextInt();//将一个随机整形数存入stu1[i] } //实现整形数据的存储 public void setName(){ System.out.println("请输入第"+(i+1)+"个学生的姓名"); Scanner s2=new Scanner(System.in); stu2[i]=s2.next();//将一个随机整形数存入stu2[i] }
现在数组中已经存满数据了,提取时只需要对其进行输出就可以了,可以写一个方法getName
public void getName(){ System.out.println("第"+(i+1)+"个学生姓名是"+stu2[i]); }
随后要对数据逐个输出,只需在主函数加入几个循环调用语句就齐活儿了,于是代码便如下所示
public class Student { static Student st = new Student();// 创建一个Student对象 private String name;// 定义对象姓名属性 String[] stu2 = new String[5];// 定义一个存储5个字符串变量的数组 int[] stu1 = new int[5];// 定义一个存储5个整形变量的数组 private int num;// 定义一个变量 static int i = 0;// 定义一个数用于存储和提取数组是进行循环 /* * 定义主函数 */ public static void main(String[] args) { for (i = 0; i < 5; i++) { st.setName(); st.setNumber(); } for (i = 0; i < 5; i++) { st.getName(); } } // 实现字符串的存储 public void setNumber() { System.out.println("请输入第" + (i + 1) + "个学生的学号"); java.util.Scanner s1 = new java.util.Scanner(System.in);// 实例化一个系统中的输入对象 stu1[i] = s1.nextInt();// 将一个随机整形数存入stu1[i] } // 实现整形数据的存储 public void setName() { System.out.println("请输入第" + (i + 1) + "个学生的姓名"); java.util.Scanner s2 = new java.util.Scanner(System.in); stu2[i] = s2.next();// 将一个随机整形数存入stu2[i] } // 实现数据的提取 public void getName() { System.out.println("第" + (i + 1) + "个学生姓名是" + stu2[i]); } }
2.用自定义的类定义数组类型
譬如
/* * 定义一个类表示大小,每一个对象都表示一个尺寸 */ public class Size { public Size(int x1,int y1,int x2,int y2){ this.x1=x1; this.x2=x2; this.y1=y1; this.y2=y2; } public int x1,y1,x2,y2; public void print(){ System.out.println("x1: "+x1+" x2: "+x2+" y2: "+y2); } }
这样定义就建立了一个Size数据类型,就好比系统定义的int,float,唯一的不同点是这个是哥的产品
下面可以用Size来定义数组
//这个类用来测试Size类型数组 public class ArrayTest { Size size;//定义一个Size类型变量 public static void main(String[] args) { //定义一个Size类型数组 Size[] si=new Size[10]; //接下来给数组赋值,在这类型中可以为4个对象赋值,所以一个Size类型的一维数组可以存4组数
for(int i=0;i<si.length;i++){ si[i]=new Size(i+1,i+2,i+3,i+4); } for(int i=0;i<si.length;i++){ size=si[i]; size.print(); }
Easy!
二维也是这么一回事,数据类型[ ] [ ] 数组名=new 数据类型[宽度][长度];
二维数组也是按照一位数组那种形式存的,无非就是到了规定的长度就排到下一排,排满了就是再下一排,数组a[ i ][ j ]就中的 i 就表示有多少排,j 表示一排有多少人。
要是三维的话就要一层一层地往上摞了,a[ i ][ j ][ k ]中的 i 就表示层数, j 表示有多少排,k 表示一排有多少人。
至于N维,孩子,会用但是不会形象描述,如果你懂N维空间,教教我吧!