zoukankan      html  css  js  c++  java
  • Java数组

    3.2一维数组

    3.2.1声明数组

    复制代码
    数组类型[]  数组名称;
    int []   username;
    
    或者
    
    数组类型   数组名称[];
    int   username[];
    复制代码

    3.2.2初始化一维数组

    一维数组初始化有两种格式,一种是先声明再赋值,一种是直接声明并赋值

    int []  array = new int[5];  //创建一个整型数组对象,长度为5;
    
    int []  array = {1,2,3,4,5}; //创建一个整型数组对象,长度为5,并同时赋值;

    用new 运算符来创建数组对象时,必须指定数组大小。创建数组对象时,仅仅是在内存中为数组变量分配指定大小的空间,并没有实际存储数据,这时数据会被自动赋初始值

    //数字数组,初值是 0;
    //布尔数组,初值是false;
    //字符数组,初值是'';
    //对象数组,初值是null;

    3.2.3访问一维数组

    创建数组变量并赋值后,就可以访问数组中元素

    复制代码
    class oneday 
    {
        public static void main(String[] args) 
        {
            int [] weeks = {1,2,3,4,5,6,7};
            for(int i = 0;i<weeks.length;i++){
                System.out.print(weeks[i]+" ");
            }
        }
    }
    
    //结果 1 2 3 4 5 6 7
    复制代码

    3.2.4修改一维数组元素

    数组中元素值是可以改变的,在声明一个变量和创建一个数组对象后,可通过为数组中元素赋值方式,来修改数组中任一元素的值

    复制代码
    class oneday 
    {
        public static void main(String[] args) 
        {
            String[] students = {"张三","李四"};   //创建两个学生;
    
            int languageScore[] = new int[2];        //定义一个整型数组,保存两个同学的语文成绩
    
            languageScore[0] =97;                        //为第一个成绩赋值
            languageScore[1] =100;                        //为第二个成绩赋值
    
            System.out.println("张三:"+languageScore[0]);
            System.out.println("李四:"+languageScore[1]);
            }
        }
    
    //结果:张三:97  李四:100
    复制代码

    3.3数组常用操作

    3.3.1数组长度

    要获得数组长度,可以用数组本身length属性获得。

    复制代码
    class oneday 
    {
        public static void main(String[] args) 
        {
            int[] weeks = {1,2,3,4,5,6,7};
            int len = weeks.length;       //获取数组长度
            System.out.println("数组长度为:"+len);
            }
        }
    //数组长度为:7
    复制代码

    3.3.2数组填充

    数组填充指的是将一个数组或数组指定元素用固定值添加到数组中,可以使用 Arrays 类提供的 fill 对数组填充

    Arrays.fill(数组名,值);        //将值全部填充到数组
    Arrays.fill(数组名,开始下标,结束下表,值);    //将值填充到开始下标到结束下标的部分
    复制代码
    import java.util.Arrays;               //导入Arrays 类
    class oneday 
    {
        public static void main(String[] args) 
        {
            int [] a = new int[5];    //定义一个整型数组a
            int [] b = new int[5];    //定义一个整型数组b
            
            Arrays.fill(a,1);           //给数组a填充值 1
            Arrays.fill(b,2,4,0);     //给数组b下标2~4之间填充0
            //循环输出数组元素
            for(int i = 0;i<a.length;i++){
                System.out.print(a[i]+" ");
            }System.out.println();
            for(int i =0;i<b.length;i++){
                System.out.print(b[i]+" ");
            }System.out.println();
        }
        }
    // 1 1 1 1 1
    // 0 0 0 0 0
    复制代码

    3.3.3数组复制

    数组复制是将一个指定数组范围内的元素值复制到另一个数组中去,利用 Java 提供的 Arraycopy() 函数(方法)来进行数组的复制操作。

    // Arraycopy (数组a,开始复制下标,复制到数组b,开始复制下标,复制长度);

    eg:将数组a的元素从第二个开始复制到数组b的第二个元素开始中,复制5个长度

    复制代码
        import java.util.Arrays;               //导入Arrays 类
        class oneday 
        {
            public static void main(String[] args) 
            {
                int [] a = {1,2,3,4,5,6,7};
                int [] b ={11,12,13,14,15,16,17};
    
                System.arraycopy(b,1,a,1,5);
                System.out.println("复制后的a数组值为:");
                for(int i=0;i<a.length;i++){
                    System.out.print(a[i]+" ");
                }
            }
        }
    // 复制后的a数组值为:
    //     1 12 13 14 15 16 7
    复制代码

    3.3.4数组比较

    数组之间可以比较,如果两个数组长度一样,并且相同位置的元素也一样,那么这两个数组相等;否则,不相等。可以使用 Arrays 提供的 equals 来判断两个数组是否相等。

    // Arrays.equals(数组1,数组2);
    复制代码
        import java.util.Arrays;               //导入Arrays 类
        class oneday 
        {
            public static void main(String[] args) 
            {
                int [] a = new int[5];
                int [] b = new int[5];
    
                Arrays.fill(a,1);    //给数组a填充1
                Arrays.fill(b,2,4,20);   //用20来填充数组b的下标2~4的部分
    
                if(Arrays.equals(a,b)){
                    System.out.print("两个数组相等");
                }else{
                    System.out.print("两个数组不等");
                }System.out.println();
            }
        }
    // 两个数组不等
    // Arrays.equals 返回值为 boolean
    复制代码

    3.3.5数组排序

    数组排序主要包括 sort 函数(方法)排序和冒泡排序

    Arrays.sort(数组);
    //或者
    Arrays.sort(数组,开始下标,结束下标);

    ①sort 函数(方法)是升序排序,可以将数组全部排序,也可以在指定范围内将元素排序。

    复制代码
        import java.util.Arrays;               //导入Arrays 类
        class oneday 
        {
            public static void main(String[] args) 
            {
                int [] a = {12,62,53,74,8};
                int [] b = {45,68,2,56,7};
                //将数组a全部排序
                Arrays.sort(a);
                //将数组b第2个和第4个之间排序
                Arrays.sort(b,2,4);
                System.out.println("数组a排序后为:");
                //循环输出a元素
                for(int i = 0;i<a.length;i++){
                    System.out.print(a[i]+" ");
                }
                System.out.println();
                System.out.println("数组b排序后为:");
                for(int i = 0;i<b.length;i++){
                    System.out.print(b[i]+" ");
                }
            }
        }
    /*
    数组a排序后为:
    8 12 53 62 74
    数组b排序后为:
    45 68 2 56 7 
    */
    复制代码

    ②冒泡排序法 ,又称为交换排序法。

    复制代码
        class oneday 
        {
            public static void main(String[] args) 
            {
                int [] a = {12,62,53,74,8};
                int temp;                         //定义一个中间量进行交换
                for(int i = 0;i<a.length;i++){
                    for(int j = i;j<a.length;j++){
                        if(a[i]>a[j]){
                            temp = a[i];
                            a[i]=a[j];
                            a[j]=temp;
                        }
                    }
                }
                System.out.println("数组a排序后:");
                for(int i=0;i<a.length;i++){
                    System.out.print(a[i]+" ");
                }
            }
        }
    
    /*
    数组a排序后:
    8 12 53 62 74
    */
    复制代码

    3.3.6在数组中搜索指定元素

    使用 Arrays 提供的 binarySearch 函数来搜索指定元素

    binarySearch(数组,指定元素);
    //或者
    binarySearch(数组,开始位置,结束位置,指定元素);

    binarySearch 方法返回值是 int 类型,指所在的下标

    复制代码
        class oneday 
        {
            public static void main(String[] args) 
            {
                int [] a = {12,62,53,74,8};
                int num1 = Arrays.binarySearch(a,53);
                System.out.println("53的下标为:"+num1);
            }
        }
    //53的下标为:2
    复制代码

    3.3.7把数组转换成字符串

    任何数组类型都可以使用 Arrays 类的 toString 函数(方法)转换为字符串。

    // toString(数组类型,数组名);

    返回值为字符串类型

    复制代码
        class oneday 
        {
            public static void main(String[] args) 
            {
                int [] a = {12,62,53,74,8};
                double [] b = {3.68,56.44,99.51,12.3};
                //输出数组转换后的字符串
                System.out.println("int类型数组a转换成字符串为:"+Arrays.toString(a));
                System.out.println("double类型数组b转换成字符串为:"+Arrays.toString(b));
            }
        }
    /*
    int类型数组a转换成字符串为:[12, 62, 53, 74, 8]
    double类型数组b转换成字符串为:[3.68, 56.44, 99.51, 12.3]
    */
    复制代码

    3.4多维数组

    3.4.1声明二维数组

    复制代码
    数组类型 [] [] 数组名字;
    int [] [] num;
    
    //或者
    
    数组类型 数组名字 [] [];
    int num [] [];
    复制代码

    3.4.2创建二维数组

    创建二维数组对象有两种格式:

    复制代码
    int [] [] num = new int[3][4];   //创建一个int类型的二维数组,长度为3和4;
    String[][] username = new String[2][2] //创建一个string类型数组,长度为2和2 
    
    //或者
    //创建并赋值
    int [][] num = {{3,4,5},{6,7,8,9}}; 
    String [][] username = {{"张三","李四"},{"赵二","老王"}};
    复制代码

    3.4.3访问二维数组

    创建数组变量并赋值后就可以访问二维数组,第一个下标为行索引,第二个下标为列索引

    //int[] [] num1={{10,20,30,40},{50,60,70,80}};

    列下标0

    列下标1

    列下标2

    列下标3

    行下标0

    10

    20

    30

    40

    行下标1

    50

    60

    70

    80

    复制代码
        class oneday 
        {
            public static void main(String[] args) 
            {
                int[] [] num1={{10,20,30,40},{50,60,70,80}};
                System.out.println(num1[0][2]);
            }
        }
    //30
    复制代码

    上述输出数组num1的第一行(下标为0)第三列(下标为2)的元素,输出值为:30

     3.4遍历二维数组

    复制代码
        import java.util.Arrays;               //导入Arrays 类
        class oneday 
        {
            public static void main(String[] args) 
            {
                int [] [] a={{1,2,3},{4,5,6},{7,8,9}};       //定义一个整型二维数组a
                int [] [] b=new int[3][3];                        //定义一个整型二维数组b                
                int k = 1;
                int i,j =0;
                for(i=0;i<b.length;i++){
                    for(j=0;j<b[i].length;j++){
                        b[i][j]=k++;
                    }
                    //输出a数组;
                    System.out.println("输出a数组");
                    for(i=0;i<a.length;i++){
                        for(j=0;j<a[i].length;j++){
                            System.out.print(a[i][i]+" ");
                        }
                        System.out.println();
                    }
                    //输出b数组
                    System.out.println("输出b数组");
                    for(i=0;i<b.length;i++){
                        for(j=0;j<b[i].length;j++){
                            System.out.print(b[i][j]+" ");
                        }
                        System.out.println();
                    }
                }
            }
        }
    
    /*
    输出a数组
    1 1 1
    5 5 5
    9 9 9
    输出b数组
    1 2 3
    0 0 0
    0 0 0
    */
  • 相关阅读:
    complicated用法
    Vue安装并创建一个简单项目
    使用PyCharm创建Django项目及基本配置
    [hackerrank]John and GCD list
    在Web应用程序中执行计划任务(多线程)
    随笔,想了个同步的方案。
    文摘.
    csdn sql 搜索相关帖子。
    Url Rewriting,二级域名,重定向
    杂言
  • 原文地址:https://www.cnblogs.com/mms912/p/8734655.html
Copyright © 2011-2022 走看看