美文网首页
Java学习之数组

Java学习之数组

作者: TheLiar2017 | 来源:发表于2017-08-09 22:16 被阅读0次

    标签: java 数组


    声明数组语法:

    声明并开辟数组

    数据类型 数组名称[] = new 数据类型[长度];
    数据类型 []数组名称 = new 数据类型[长度];
    
    //分步完成
    
    //声明数组
    数据类型 数组名称 [] = null;
    //开辟数组
    数组名称 = new 数据类型[长度];
    
    

    数组的数据类型

    数组是引用类型。

    动态初始化数组

    先开辟数组空间,在赋值。

    int data[] = new int[3];
    data[0] = 1;
    data[1] = 2;
    data[2] = 3;
    
    int temp [] = data;
    temp[0] = 99;
    
    System.out.println("data[0] =" + data[0]);
    
    

    结果是data[0] = 99tempdata使用的是同一块内存空间。

    静态初识化数组

    数组的定义的同时就设置好了相应的值。

    //格式一
    数据类型 数组名称 [] = {值,值,值,...};
    
    //格式二
    数据类型 数组名称 [] =new 数据类型{值,值,值,...};
    

    二维数组

    二维数组和一位数组一样,也是引用数据类型。也有动态初始化和静态初始化两种初始化方式。

    在进行数组的引用传递的过程之中,方法对数组的修改一定会影响到原始数据。

    有关数组的算法

    数组排序

    //冒泡排序
        for(int x = 0; x < arrayName.length; x++)
        {
            for(int y = 0; y < arrayName.length - 1; y++)
            {
                int t = arrayName[y];
                arrayName[y] = arrayName[y + 1];
                arrayName[y + 1] = t;
            }
        }
    
    

    数组倒置

    一维数组

    数组倒置,将数组从0至尾倒置成从尾至0.
    即:0,1,2,3,
    变成:3,2,1,0

    
        public void reverse(int arr[])
        {
            int len = arr.length / 2;
            int head = 0;
            int tail = arr.length - 1;
            for(int x = 0; x < len; x++)
            {
                int temp = arr[head];
                arr[head] = arr[tail];
                arr[tail] = temp;
                head++;
                tail--;
            }
        }
    
    

    二维数组

    二维数组的转置。(行列相同)

    
    public void reverse(int arr[][]){
        for(int x= 0; x < arr.length; x++){
            for(int y = x; y <arr[x].length; y++){
                if(x != y){
                    int temp =arr[x][y];
                    arr[x][y] = arr[y][x];
                    arr[y][x] = temp;
                }
            }
        }
    }
    
    

    数组操作方法

    数组拷贝

    将一个数组的部分内容拷贝到另外一个数组之中。

    语法

    System.arraycopy(arrA,indexA,arrB,indexB,num)
    //arrA,arrB 数组A,数组B,将数组A的内容拷到数组B中
    //indexA,数组A开始拷贝的索引;
    //indexB,数组B开始接收拷贝的索引。
    //num 要拷贝的个数。
    

    数组排序

    语法

    Array.sort(arrayName);
    

    对象数组

    语法

    class Book{
       //略
    }
    Book book []= new Book [3] ;
    
    //对象数组的 每个数据都需要分别实例化
    
    book[0] = new Book("title","num");
    book[1] = new Book("title1","num2");
    book[2] = new Book("title2","num3");
    
    

    对象数组实际是将多个对象交给数组统一管理。

    相关文章

      网友评论

          本文标题:Java学习之数组

          本文链接:https://www.haomeiwen.com/subject/ngfcrxtx.html