鱼儿眼中的海

业精于勤荒于嬉,行成于思毁于随.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是java对象。数组中的元素可以是任意类型(包括基本类型和引用类型),但同一个数组里只能存放类型相同的元素。

  (1)声明一个数组类型的引用变量,简称为数组变量;

  (2)用new语句构造数组的实例。new语句为数组分配内存,并且为数组中的每个元素赋予默认值。

  (3)初始化,即为数组中的每个元素设置合适的初始值。

1、创建数组对象

  int [] scores=new int[100];

      new语句执行步骤:

  1.1 在堆区为数组分配内存空间。上面创建了int类型的包含100个元素的数组,每个元素都是int类型,占4个字节,因此整个数组对象在内存中占400个字节。

  1.2 为数组中的每个元素赋予默认值。以上int数组每个元素都是int类型,因此默认值是0,boolean类型数组默认值false,引用类型默认值null;

  1.3  返回数组对象的引用。

2.多维数组

  比如说宾馆的房间,可以用二位数组表示房间客人信息:

String[][] rooms={
            {"TOM","list",null},
            {"sa",null},
            {null,"asf"}
    };
    public void method2(){
        //System.out.println(rooms[0][1]);
        for(int i=0;i<rooms.length;i++){
            for(int j=0;j<rooms[i].length;j++){
                System.out.println(rooms[i][j]);
            }
        }
    }
    public static void main(String[] args) {
        Rooms2 r=new Rooms2();
        r.method2();
    }

   创建多维数组时,必须按照从低维到高纬的顺序创建每一维数组,例如以下是非法的:

int [][][] b=new int[2][][3]; //编译出错

  2.1数组冒泡排序

package package14_6;

public class ArraySorter {
    /**
     * 冒泡排序
     */
    public static void bubbleSort(int[] array) {
        for(int i=0;i<array.length-1;i++){
            for(int j=0;j<array.length-i-1;j++){
                if(array[j]>array[j+1]){
                    int temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
            print(i+1,array);
        }
    }
    public static void print(int time,int[] array){
        System.out.println("第"+time+"趟排序");
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        int[] array={4,5,32,1,63};
        bubbleSort(array);
    }
}

   2.2数组二叉查找

package package14_6;

public class ArrayFinder {
    public static void print(int[] array,int middle){
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]);
            if(i==middle){
                System.out.print("*");
            }
            System.out.print(" ");
        }
        System.out.println();
    }
    /**
     * 二叉查找法
     */
    public static int indexof(int[] array,int value){
        int low=0;
        int high=array.length-1;
        int middle;
        while(low<high){
            middle=(low+high)/2;//计算中间元素的索引
            print(array,middle);//打印数组用于跟踪查找过程
            if(array[middle]==value)return middle;
            if(value<array[middle]){
                high=middle;
            }else{
                low=middle;
            }
        }
        return -1;
    }
    public static void main(String[] args) {
        int [] array={2,23,231,312,4323,12311};
        int value=4323;
        indexof(array, value);
    }
}

 

posted on 2016-05-03 00:58  鱼儿眼中的海  阅读(177)  评论(0编辑  收藏  举报