数组及其应用

数组:数组是程序中用来批量存储数据的存储形式,放上用一个名字存储一组相同属性的数据,用下标区分各个数据,数组一但定义,长度就是固定的。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维空间,教教我吧!

猜你喜欢

转载自rsj-1991.iteye.com/blog/1836979