Array:数组,里面一种数据结构,储存相同的元素类型。

package Collection;

public class ArrayExpression {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//定义一个数组
		String[] str1;
		str1=new String[]{"a","ab","abc","abcd"};
		String[] str2;
		str2=new String[5];
		for(String string : str1)
		{
			System.out.println(string);
			
			/*
			 * a
			   ab
			   abc
			   abcd
			 */
		}
		
		for(int i=0;i<str1.length;i++)
		{
			System.out.println(str1[i]);
			/*
			 * a
			   ab
			   abc
			   abcd
			 */
			
			//foreach 与 for循环对比可以发现:1 foreach后面type类型加上一个变量值,打印各个数据时候不需要索引
		}
		for(String sr:str2)
		{
			System.out.println(sr);
			/*
			 * null
			   null
			   null
			   null
               null
			 */
		}

	}

}

 

 

有关Array的堆(heap)内存和栈(stack)内存的影响。

package Collection;

public class Arrayexpression1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] int1=new int[]{5,5,2,6,3,2};
		int[]  int2=new int[]{5,3,6,9,22,44,33,88,54};
		for(int i :int1)
		{
			System.out.println(i);
		}
		
		for(int j:int2)
		{
			System.out.println(j);
		}
		
		
		System.out.println("int1.length:"+int1.length);
		
		System.out.println("int2.length:"+int2.length);
		
		int1=int2;
		
		System.out.println(int1.length);
		System.out.println(int2.length);

	}

}

  

二维数组打印:

package Collection;

public class ErWeiArray {

	public static void main(String[] args) {
       int[][] int1=new int[5][8];
       int1[0][2]=78;
       //此处int1.length的长度基本确定为5
       for(int i=0,len=int1.length;i<len;i++){
    	   
    	  //此处int[j].length是表示数组元素int[j]处的长度
    	   for(int j=0,k=int1[j].length;j<k;j++)
    		   
    	     {
    		   
    	   System.out.print(int1[i][j]);
    	  
         }
    	   System.out.println("/");
    	   /*
    	    * 007800000/
	      00000000/
              00000000/
              00000000/
	      00000000/

    	    */
       }
     
	}

}

  

Arrays:

      操作数组的类。

package Collection;

import java.util.Arrays;

public class Arraysbinary {

	public static void main(String[] args) {
     int[] a=new int[6];
     a[0]=1;
     a[1]=5;
     a[2]=89;
     a[3]=12;
     a[4]=55;
     a[5]=66;
     for(int i=0;i<a.length;i++)
     {
     System.out.println(a[i]);
     }
//     Arrays.sort(a);  //Arrays类下的排序方法
    int c=Arrays.binarySearch(a,55); //Arrays下的二分查找要求返回type,其中要求数组是已经排序的
    System.out.println(c);
     
 //java.lang.ArrayIndexOutOfBoundsException: 0 数组索引越界
//     int[] a=new int[]{};
//    a[0]=1;
//    a[1]=5;
//    a[2]=89;
//    a[3]=12;
//    a[4]=55;
//    a[5]=66;
//   这里的意思很明确数组越界,为什么会越界,我的想法是在数组在静态初始化的过程中必须赋值,我在a[0]处下面的代码是动态赋值的过程,此时的数组已经初始化成功了
    //改进过程就是:int[] a=new int[6];或者 int[ ] a=new int[]{1,5,89,12,55,66};

    System.out.println(Arrays.toString(a));
    //[1, 5, 89, 12, 55, 66]

	}

}