黑马程序员——Java基础——数组的学习

android培训java培训期待与您交流!

1、数组的概念:

同一种类型数据的集合。其实数组就是一个容器。运算的时候有很多数据参与运算,那么首先需要做的是什么,不是如何运算而是如何保存这些数据以便于后期的运算,那么数组就是一种用于存储数据的方式,能存数据的地方我们称之为容器,容器里装的东西就是数组的元素, 数组可以装任意类型的数据,虽然可以装任意类型的数据,但是定义好的数组只能装一种元素, 也就是数组一旦定义,那么里边存储的数据类型也就确定了。


2、数组的创建格式:

1、数据类型[ ] 数组名 = new 数据类型 [ 数组长度 ];

示例:int[] arr = new int[10];//只给长度,系统给出默认值

2、数据类型[ ] 数组名 ={元素1,元素2,元素3,元素4};

示例:int[] arr ={23,12,43,9};//给出值,系统获取长度


3、数组的遍历方式

因为我们知道数组一旦创建长度是固定的所有我们可以把长度作为判断条件进行遍历,而且数组的索引值是从0开始,最大的索引值是数组长度减1。

示例:

public static void main(String[] args) {
		int [] arr={23,16,18,2,56,10};
		for(int x=0; x<arr.length;x++){ //定义一个变量作为数组的索引值
			System.out.print(arr[x]+",");//输出结果是23,16,18,2,56,10,
		}
}

4、  数组的常见异常

1、角标越界异常:注意:数组的角标从0开始。

示例:

public static void main(String[] args) {
		int [] arr={23,16,18,2,56,10};
		for(int x=0; x<arr.length;x++){ //定义一个变量作为数组的索引值
			System.out.print(arr[7]+",");//角标越界异常:
		}
	}

数组脚标越界异常

2、空指针异常:注意空指针异常的出现原因是引用类型变量没有指向实体

public static void main(String[] args) {
		int [] arr={23,16,18,2,56,10};
		arr=null;
		for(int x=0; x<arr.length;x++){ //定义一个变量作为数组的索引值
			System.out.print(arr[x]+",");//空指针异常:

		}
	}
空指针异常


5、数组的特点:

1、数组只能存储一种数据类型的数据

2、数组一旦初始化长度是固定的

3、数组元素与元素的地址是相邻的

6、数组常见的操作:

1、获取数组的最大值:

class Demo1 
{
	public static void main(String[] args) {
		int [] arr={23,16,18,2,56,10};
		int max=getMax(arr);
		System.out.println("最大值是:"+max);//输出结果是56
	}
	public static int getMax(int[] arr)
	{
		//定义变量记录较大的值,初始化为数组中的任意一个元素。
		int max = arr[0];
		for(int x=1; x<arr.length; x++)
		{
			if(arr[x]>max){//用自定义的变量依次和遍历到的元素进行比较,如果比max大那么就要max记录住
				max = arr[x];
			}
			return max;//返回比较完后获取到的最大值的元素
		}
	}
}





2、冒泡排序

示例

   

/*
    冒泡排序。
    比较方式:相邻两个元素进行比较。如果满足条件就进行位置置换。
    原理:内循环结束一次,最值出现在尾角标位置。
    */
class Demo1 
{
	public static void main(String[] args) {
		int [] arr={23,16,18,2,56,10};
		toString(arr);//排序前打印
		bubbleSort(arr);//排序
		toString(arr);//排序后打印
	}
	public static int getMax(int[] arr)
	{
		//定义变量记录较大的值,初始化为数组中的任意一个元素。
		int max = arr[0];
		for(int x=1; x<arr.length; x++)
		{
			if(arr[x]>max)
				max = arr[x];
		}
		return max;


	}


	 public static void bubbleSort(int[] arr){
        	for(int x=0; x<arr.length-1; x++){
            		for(int y=0; y<arr.length-x-1;y++)//-x:让每次参与比较的元减。
                                                //-1:避免角标越界。
            		{
                		if(arr[y]>arr[y+1])
                		{
                    			int temp= arr[y];
                    			arr[y]= arr[y+1];
                    			arr[y+1]= temp;
                		}
           		 }
       		 }
	}
	public static void toString(int[] arr) {
        <span style="white-space:pre">	</span>for(int x=0; x<arr.length; x++){
		<span style="white-space:pre">	</span>System.out.print(arr[x]+",");
      	<span style="white-space:pre">	</span>}
	<span style="white-space:pre">	</span>System.out.println();
<span style="white-space:pre">	</span>}
}



7、数组的内存分析


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值