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);
        }
    }
  • 相关阅读:
    C#几种截取字符串的方法小结
    KinSlideshow参数设置说明
    WinForm程序中两份mdf文件问题的解决
    全国省市数据库
    ASP.NET项目中使用CKEditor +CKFinder 实现上传图片
    mht文件无法打开的解决办法
    Non-parametric tests
    Plot transpant lines in Matleb 在Matlab中绘制透明线条
    Which HRV method to use: FFT or Autoregressive?
    SPM How-tos SPM预处理及统计分析指南
  • 原文地址:https://www.cnblogs.com/taray/p/5419397.html
Copyright © 2011-2022 走看看