黑马程序员------数组学习(数组基础)

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ---------------------- 

微笑数组的定义、特点及常见问题:

  1. 同一种数据的集合,其实就是一种容器。
  2. 存储数据的一种形式。就是“装东西”,装的“东西”被称为“元素”。
  3. 元素类型可以是任意的,但定义一个数组,依次装入的只能同一类型的数据。
  4. 数组自动对存入的元素进行编号(从0开始),方便操作。 
  5. 格式  
    元素类型[ ] 数组名 = new 元素类型(元素的个数或数组的长度);
    int[] x = new int[3];//默认初始化值为0.
     //数据明确的情况下
    //int[] arr = new int[]{2,3,1};
    
    //不建议使用下面的方式,当然用了也不会出错。
    //int x[] = new int [3];
    
    //System.out.println(arr[2]);
     //结果是1 
    //System.out.println(arr[3]); 
    //ArrayIndexOutOfBoundsException;操作数组时,访问到了数组不存在的脚标,数组越界
     

微笑数组的内存分配:

 

微笑数组的常见操作:

  1. 数组的基本操作
  2. 数组常遇到的遍历( 使用for循环,逐一进行遍历,此处要注意数组的两个端点,防止出错。
    class ArrayDemo
    {
    	public static void main(String[] args){
    		//数组的操作
    		//获取数组中的元素,常遇到的遍历。
    		//int[] arr = new int[3];
    		int[] arr = {3,6,5,1,8,9,7};
    		//数组中有一个属性可以获取到数组元素的个数,length。切记不是方法。
    		System.out.println("length:"+arr.length);
    
    		int sum = 0;
    		for(int x = 0; x<arr.length;x++){
    			sum +=arr[x];
    		}
    		System.out.println(sum);
    
    		//调用打印方法,打印arr数组
    		printArray(arr);
    
    	}
    	//定义功能,用于打印数组中的元素
    	public static void printArray(int[] arr){
    		for(int x = 0; x<arr.length;x++){
    			//不是最后一个元素都加“,”
    			if(x!=arr.length-1)
    			System.out.print(arr[x]+",");
    			else
    			System.out.print(arr[x]);
    		}
    	}
    }
  3. 获取最大值

思路:

1.获取最值需要比较,每一次比较都会有一个较大的值,因为该值不确定,通过一个变量存储。

2.让每个数组中的每一个元素都和这个变量中的值进行比较。如果大于变量中的值,就用该变量记录较大值。

3.当所有的元素都比较完成,那么变量中存储的就是数组中的最大值了。

程序

如下:

class ArrayDemo
{
	public static void main(String[] args){
		
		int[] arr = {3,6,5,1,8,9,7};
		//调用findMax()方法,打印最大值
		System.out.println("max: "+findMax(arr));
		//调用findMax_2()方法,打印最大值
		System.out.println("max: "+findMax_2(arr));

	}
	//定义查找最大值功能findMax(),用于查找数组中的最大值元素
	//提高了复用性
	public static int findMax(int[] arr){
		//?为什么不用int max=0;
		//因为假如数组中的值都为负数,则0成了干扰,导致结果错误。
		int max=arr[0];
		for(int x = 0; x<arr.length;x++){
			if(arr[x]>max)
				max=arr[x];
		}
		return max;
	}

	//可不可以使用 int max=0?,答案是可以的,看下面程序
	public static int findMax_2(int[] arr){
		//若用int max=0,可以把max当作脚标使用,最大值是记录脚标。
		int max=0;
		for(int x = 0; x<arr.length;x++){
			if(arr[x]>arr[max])
				max=x;
		}
		return arr[max];
	}
}


  

微笑数组中的数组:

  1. 二维数组:

把数组当作一个元素存入数组;相当于于大箱子中放入小箱子。。。

class Array2Demo
{
	public static void main(String[] args){
		//一维数组。
		//int[] arr = new int[3];
		//定义了一个arr二维数组,二维数组中有三个一维数组,
		//每个一维数组中有四个元素。
		//int[][] arr = new int[3][4];
		//System.out.println(arr[0][1]);
		/*
		int[][] arr = new int[3][];
		arr[0] = new int[3];
		arr[1] = new int[1];
		arr[2] = new int[2];
		//打印是二维数组的长度3;
		System.out.println(arr.length);
		//二维数组中第一个一维数组的长度。
		System.out.println(arr[0].length);
		*/

		int[][] arr = {{3,5,7,1},{6,2,4,8},{3,5,4,8}};
		int sum = 0;
		for(int i = 0;i<arr.length;i++){
			for(int j=0;j<arr[i].length;j++){
				sum+=arr[i][j];
			}
		}
		System.out.println("sum="+sum);
	}
}

 

 

 附加:

/*
int[] x,y[];
//方便理解,一般写成:
//int[] x;
//int[] y[];
a. x[0]=y;   error
b. y[0]=x;   yes
c. y[0][0]=x;  error
d. x[0][0]=y;   error
e. y[0][0]=x[0];   yes
f. x=y;    error
*/

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ---------------------- 

详情请查看:http://edu.csdn.net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值