• 数组


    增强型for 循环

     1 public class HelloWorld {
     2     public static void main(String[] args) {
     3         int values [] = new int[]{18,62,68,82,65,9};
     4         //常规遍历
     5         for (int i = 0; i < values.length; i++) {
     6             int each = values[i];
     7             System.out.println(each);
     8         }
     9         
    10         //增强型for循环遍历
    11         for (int each : values) {
    12             System.out.println(each);
    13         }

    增强型for循环只能取值,不能修改元素的值。

    预留作业:

    用增强型for循环找出最大的那个数

    复制数组

    把一个数组的值,复制到另一个数组。

    src 源数组 srcPos 原数组的首位 dest 目标数组

    destPos: 复制到目标数组的起始位置

    length: 复制的长度

    public class HelloWorld {
        public static void main(String[] args) {
            int a [] = new int[]{18,62,68,82,65,9};
            int b[] = new int[3];//分配了长度是3的空间,但是没有赋值
    //通过数组赋值把,a数组的前3位赋值到b数组
    //方法一: for循环        
            for (int i = 0; i < b.length; i++)
    { b[i]
    = a[i]; } //方法二: System.arraycopy(src, srcPos, dest, destPos, length) System.arraycopy(a, 0, b, 0, 3);
    //把内容打印出来 for (int i = 0; i < b.length; i++)
    { System.out.print(b[i]
    + " "); }
    }
    使用增强型for循环打印
     for (int each : b)
     {
                System.out.println(each);
     }
    
    
     }

    预留练习:

    首先准备两个数组,他俩的长度是5-10之间的随机数,并使用随机数初始化这两个数组

    然后准备第三个数组,第三个数组的长度是前两个的和


    通过System.arraycopy 把前两个数组合并到第三个数组中

     二维数组

    初始化二维数组

    public class HelloWorld {
        public static void main(String[] args) {
           //初始化二维数组,
           int[][] a = new int[2][3]; //有两个一维数组,每个一维数组的长度是3
           a[1][2] = 5;  //可以直接访问一维数组,因为已经分配了空间
             
           //只分配了二维数组
           int[][] b = new int[2][]; //有两个一维数组,每个一维数组的长度暂未分配
           b[0]  =new int[3]; //必须事先分配长度,才可以访问
           b[0][2] = 5;
           
           //指定内容的同时,分配空间
           int[][] c = new int[][]{
                   {1,2,4},
                   {4,5},
                   {6,7,8,9}
           };
        }
    }

    练习:

    定义一个5X5的二维数组。 然后使用随机数填充该二维数组。
    找出这个二维数组里,最大的那个值,并打印出其二维坐标。

    数组array 类:

    Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。

    copyOfRange()

    toString()

    sort

    binarySearch

    equals 

    fill 

    复制数组

    import java.util.Arrays;
    
    public class HelloWorld {
        public static void main(String[] args) {
            int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
    
            // copyOfRange(int[] original, int from, int to)
            // 第一个参数表示源数组
            // 第二个参数表示开始位置(取得到)
            // 第三个参数表示结束位置(取不到)
            int[] b = Arrays.copyOfRange(a, 0, 3);
    
            for (int i = 0; i < b.length; i++) {
                System.out.print(b[i] + " ");
            }
    
        }
    }

    数组转化为字符串:

    import java.util.Arrays;
     
    public class HelloWorld {
        public static void main(String[] args) {
            int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
            String content = Arrays.toString(a);
            System.out.println(content);
     
        }
    }

    字符串转数组

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 将字符数组转为字符串
        // 方法一
        char[] data = { 'a', 'b', 'c' };// 字符数组
        String str = new String(data);
        System.out.println(str);
        // 方法二
        String str1 = String.valueOf(data);
        System.out.println(str1);
    
        // 将字符串转为字符串数组
        // 方法一
        String string = "abc,def,ghi";
        String[] strArr = string.split(",");//注意分隔符是需要转译
        for (int i = 0; i < strArr.length; i++) {
            System.out.println(strArr[i]);
        }
        // 方法二
        String string1 = "abcdefghijk";
        char[] strArr1 = string1.toCharArray();
        for (int i = 0; i < strArr1.length; i++) {
            System.out.println(strArr1[i]);
        }
    
    }

    排序:

    import java.util.Arrays;
     
    public class HelloWorld {
        public static void main(String[] args) {
            int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
            System.out.println("排序之前 :");
            System.out.println(Arrays.toString(a));
            Arrays.sort(a);
            System.out.println("排序之后:");
            System.out.println(Arrays.toString(a));
     
        }
    }

    搜索:

    进行搜索之前要先排序,sort

    import java.util.Arrays;
    
    public class HelloWorld {
        public static void main(String[] args) {
            int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
    
            Arrays.sort(a);
    
            System.out.println(Arrays.toString(a));
            //使用binarySearch之前,必须先使用sort进行排序
            System.out.println("数字 62出现的位置:"+Arrays.binarySearch(a, 62));
        }
    }

    判断元素

    import java.util.Arrays;
    
    public class HelloWorld {
        public static void main(String[] args) {
            int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
            int b[] = new int[] { 18, 62, 68, 82, 65, 8 };
    
            System.out.println(Arrays.equals(a, b));
        }
    }

    填充元素:

    
    

    import java.util.Arrays;

    public class HelloWorld {
    public static void main(String[] args) {
    int a[] = new int[10];

    Arrays.fill(a, 5);

    System.out.println(Arrays.toString(a));

    }
    }

     

    预留练习二维数组排序:

    千秋邈矣独留我 百战归来再读书
  • 相关阅读:
    不冒任何险,什么都不做,什么也不会有,什么也不是
    jquery的$().each,$.each的区别
    SpringMVC的几种返回方式
    MySQL创建数据库并赋予权限
    Java微信公众号开发
    Mybatis批量删除
    JavaMail邮件开发
    JSON 数组的遍历解析
    按小时统计的语句
    Linux下安装Redis3.2.4
  • 原文地址:https://www.cnblogs.com/lordwind/p/11170604.html
Copyright © 2020-2023  润新知