黑马程序员--Java基础--02数组

----------- android培训java培训java学习型技术博客、期待与您交流! ------------

1.   数组的定义  

       同一类型数据的集合既容器,数组也是对应在内存中的一段存储空间,切必须是相同数据类型。

数组中元素会从0开始编号,用以方便操作。

数组的定义格式如下:

                //格式一:
		//元素类型[] 数组名 = new 元素类型[元素个数或长度]
		int[] arr = new int[5];//定义一个长度为5的整数数组
		//格式二:
		//元素类型[] 数组名 = new 元素类型[元素,元素,元素…]
		int[] arr = new int[]{1,2,4,5,6};
	        int[] arr = {1,2,4,5,6};//同样定义一个长度为5的整数数组

    在定义数组时其数据类型的不同相对应的初始值也有所不同,对应如下:

            byte,short,int,long默认初始值为0

            float,double         默认初始值为0.0

            char                 默认初始值为’\u0000’

            boolean              默认初始值为false

            引用数据类型         默认初始值为null


2.   数组元素的访问

       数组我们通常[下标]访问数组元素,越界访问(小于0或者大于等于下标值),都会发生运行异常。

在java中可以使用.length属性获取数组对象长度如下:

int[] y = new int[]{ 1 ,  2 ,  3};
                       //下标 0    1   2
        System.out.print(y.length);   //长度为3
        System.out.print(y(3));       //越界异常

3.   数组的复制及Arrays类

    java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的,常用方法如下:

    boolean equals(array1,array2);比较两个数组是否相等

    void sort(array);对数组array的元素进行升序排列

    copyof(array,length);把数组array复制成一个长度为length的新数组

    String toString(array);将数组array转换成一个字符串

 

   对于复制数组来讲,我们都希望改变其中一个数组的元素时不会影响另外数组元素的值,因此我们需要其具有隔离性,代码如下:

public static void main(String[] args) {
		   String[] arr = new String[]{"a","1","1","w"}; //声明一个数组并初始化一个长度为4的数组  
		   String[] arr1= new String[arr.length];        //声明一个与长度与arr数组相同的数组  
		   for(int x=0 ;x<arr.length;x++){               //for循环迭代复制数组  
		      arr1[x]=arr[x];                            //在循环的过程中,是arr1数组元素值与arr数组元素值相同 
		   }  
		   arr1[1]="wo";                                 //改变arr1中的元素值 
		   System.out.println(Arrays.toString(arr));     //arr数组无变化  
		   System.out.println(Arrays.toString(arr1));    //arr1数组改变了  
}

4.  数组的内存

    int[] x = newint[]{ 1 ,  2 ,  3};

   x在栈内存中引用的为堆内存中数组的首地址,即栈内存中只是存放数组空间在堆内存中的首地址,在堆内存中定义的实体是用于封装数据的,且都有初始化值但当堆内存中的实体无人引用时,java将启动垃圾回收机制进行处理,会不定时执行,相对于栈内存来说,栈内存会自动释放无用的数据

 

2.      数组的操作

(1)  获取最值

public static int getMax(int[] m) {    //定义最值方法
		int max = m[0];                    //设置max为首元素
		for (int i = 1; i < m.length; i++) {//遍历数组元素
			if (m[i] > max)                 //将max与其后的数组元素逐一比较大小,只要大于max就将该下标值得数组元素赋予max
				max = m[i];                 //数组元素赋予max
		}
		return max;                         //返回max
	}


(2)  排序

选择排序

public static void main(String[] args) {
		int[] x = new int[] { 110, 2, 3, 4, 5, 6, 7, 8, 2, 31, };
		getOrder(x);
	}
	// 选择排序,内循环一次,最值出现在头角标位置上
	public static void getOrder(int[] m) {
		for (int i = 0; i < m.length - 1; i++) {  //从第一个元素开始比较最后一位无需比较故省略
			for (int j = i + 1; j < m.length; j++) {
				if (m[i] > m[j]) {                 //从下标i的下一位逐一与m[i]比较大小,满足条件会执行下列语句
					int a = m[j];                  //该段语句实现了m[i]与m[j]值得互换
					m[j] = m[i];
					m[i] = a;
				}
			}
			System.out.print(m[i] + "\t");
		}
	}


使用Arrays类的sort方法即可对数组进行升序排列,如下
public static void main(String[]args){  
		 int[] in = new int[]{7,9,3,4,5,6};              //声明一个数组  
		 Arrays.sort(in);                                //使用sort方法对数组进行排序  
		 System.out.println("排序后的数组:"+Arrays.toString(in));   //输出排序后的数组  
		}  


6.    二维数组

      二维数组定义

              格式一:int[][] arr = newint[2][3]; 

              格式二:int[][] arr = newint[2][];

              格式三:int[][] arr ={{2,3,4}{5,6,7}};

   注:int[] y[]同样也为二维数组,较少使用。

 


-----------  android培训 java培训 java学习型技术博客、期待与您交流! ------------


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值