zoukankan      html  css  js  c++  java
  • 数组

      数组是指一组数据的集合,数组中的每个数据称为元素。在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);
        }
    }
  • 相关阅读:
    word设置的密码忘了怎么办?
    Navicat Report Viewer 设置 HTTP 的方法
    如何处理Navicat Report Viewer 报表
    excel密码忘记了怎么办
    Beyond Compare文本比较搜索功能详解
    Popular Cows POJ
    Problem B. Harvest of Apples HDU
    网络流模型整理
    The Shortest Statement CodeForces
    Vasya and Multisets CodeForces
  • 原文地址:https://www.cnblogs.com/taray/p/5419397.html
Copyright © 2011-2022 走看看