数组

增强型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));

}
}

 

预留练习二维数组排序:

千秋邈矣独留我 百战归来再读书
原文地址:https://www.cnblogs.com/lordwind/p/11170604.html