首页 > 技术文章 > 数组入门

dmblogaa 2016-10-12 22:18 原文

 

数组是储存在一个连续的内存块中的元素集合,用于存储多个同类型的数据。

索引(下标):数组中的每一个数据的编号,为int类,依次从0开始到length-1编号。

数组项(元素):指数组中的一个数据。数组中每一个数据的数据类型必须相同。一个索引对应一个数组项,它们是一一对应的。

长度:指数组中项的数量,为int类型,用length表示,长度是固定的。

数组类型默认值: 数字类型,0;       boolean,false;           char,'\0';               String,null.

String转char:  字符串变量.tocharArray()    //表达式返回为:char[].

对数组最基本操作:存,取数据。

核心思想:就是对下标的操作。

声明数组: 代码结构,int [] array=new int[length];   

              获取数组项,array[下标]   //下标为int类从0到length-1,之间的任意数字。

              获取数组的长度, array.length    //array为数组,.为的,length为长度。

数组初始化器:代码结构,int [] array={1,2,3,4};  //优先选择。

                             或者 int [] array=new int[]{1,2,3,4};

数组的遍历:就是依次得到数组的每一项,有for,foreach两种方法。

               例, int [] array={1,2,3};

                for方法:        for(int i=0; i<array.length;i++ ){System.out.print(array[i]+"\t"); } // i表示下标,"\t"是分割符。

               foreach方法:   for(int j:array){System.out.print(array[j]+"\t");} //表示依次取出数组中每一项,取出依次,将数组项赋值给变量j,知道数组中索引数组项取完为止。效率高于for.

System.arraycopy(数组1,0,数组2,1,数组1.length); // 把数组1从下标为0的数组项移到数组2,下标为1的数组中去;

array1=java.util.Arrays.copyof(1,2);//  1:指原数组的变量, 2:指新数组(array1)的长度。   效果如:[1,2]→[1,2,0,0].

JDK中提供快速排序: java.util.Arrays.sort(数组变量);

冒泡排列:规则(从后往前)

         ​1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

         2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

         3.针对所有的元素重复以上的步骤,除了最后一个。

         4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

         代码结构:

         for(int i=1;i<=array.length-1;i++){             //   i:控制比较轮次,1≤i≤array.length-1,总次数为array.length。

         for(int j=0;j<array.length-i;j++){         //  j:控制下标,j与j+1 项对比,0≤j<array.length-i。
         if (array[i]<array[j]){
         int tmp;
         tmp=array[i];
         array[i]=array[j];
         array[j]=tmp;

 

二维数组:int[][] nums=new int[2][3];//2:指行。  3:指列。

           初始化器:int[][] nums = {{34,11,3},{1,2,3}};

           遍历:for (int i = 0; i < nums.length; i++) {

                    for (int j = 0; j < nums[0].length; j++) {
                   System.out.print(nums[i][j]+"\t");}
                   System.out.println();}

推荐阅读