遍历数组

  1. 通过for循环就可以遍历数组。

    1. public class Main{
    2. public static void main(String[] args){
    3. int[] ns = {1,2,2,33,43,54};
    4. for(int i = 0; i < ns.length;i++){
    5. System.out.println(ns[i]);
    6. }
    7. }
    8. }
  2. 第二种方式使用for each循环

    1. public class Main{
    2. public static void main(String[] args) {
    3. int[] ns = {1,2,2,2,4,34,54,5};
    4. for ( int n : ns ) {
    5. System.out.println(n);
    6. }
    7. }
    8. }

    打印数组内容

Arrays.toString(array); 可以快速打印数组内容

数组排序

从小到大排序

  1. public class Main{
  2. public static void main(String[] args){
  3. int[] ns = {20,123,32,65,32,21,2,11,36};
  4. System.out.println(Arrays.toString(ns));
  5. for(int i = 0;i < ns.length;i++) {
  6. for(int j = i+1;j<ns.length;j++) {
  7. if(ns[i] > ns[j]) {
  8. int tmp = ns[j];
  9. ns[j] = ns[i];
  10. ns[i] = tmp;
  11. }
  12. }
  13. }
  14. System.out.println(Arrays.toString(ns));
  15. }
  16. }

从小到大排序

  1. public class Main{
  2. public static void main(String[] args) {
  3. int[] ns = {12,213,234,12,123,333,4,43,2234,21};
  4. for(int i =0;i<ns.length;i++) {
  5. for(int j =0;j<ns.length -1-i;j++){
  6. if(ns[j] > ns[j+1]) {
  7. int tmp = ns[j];
  8. ns[j] = ns[j+1];
  9. ns[j+1] = tmp;
  10. }
  11. }
  12. }
  13. }
  14. }

还可以用Arrays.sort() 排序

对数组排序实际上修改了数组本身。

练习:
降序排序

public class Main{
    public static void main(String[] args){
        int[] ns = {28,12,89,73,65,18,96,50,8,36};
        //排序前
System.out.println(Arrays.toString(ns));

        //todo:

        //方法1

        for(int i = 0; i< ns.length;i++) {
            for(int j = i+1; j< ns.length;j++) {
                if(ns[i] < ns[j]) {
                    int tmp = ns[i];
                    ns[i] = ns[j];
                    ns[j] = tmp;
                }
            }
        }

        //方法2

        for(int i = 0;i<ns.length;i++) {
            for(int j = 0; j < ns.length -1- i;j++){
                if(ns[j] < ns[j+1]) {
                    int tmp = ns[j];
                    ns[j]  = ns[j+1];
                    ns[j+1] = tmp;
                }
            }
        }



        System.out.println(Arrays.toString(ns));
        if(Arrays.toString(ns).equals("[96, 89, 73, 65, 50, 36, 28, 18, 12, 8]")){
            System.out.println("测试成功");
        } else {
            System.out.println("测试失败");
        }

    }
}

多维数组

二维数组就是数组的数组。



public class Main{
    public static void main(String[] args){

        //创建一个多维数组
        int[][] ns= {
            {1,2,3,4,5,6,67,77},
            {333,1,1,223,4,5,65,6}
        };

        System.out.println(ns.length);//2



        //打印多维数组
        System.out.println(Arrays.deepToString(ns));

    }
}

练习:
计算所有学生的平均分:

public class Main{
    public static void main(String[] args){
        int[][] scores = {
                { 82, 90, 91 },
                { 68, 72, 64 },
                { 95, 91, 89 },
                { 67, 52, 60 },
                { 79, 81, 85 },
        };

        // double average = 0;



           double sum = 0;
        int count =0;

        for(int[] is : scores) {
            for(int is2 : is) {
                sum += is2;
                count++;
            }
        }


        double average = sum / count;
        System.out.println(average);

        if(Math.abs(average - 77.733333) < 0.000001){
            System.out.println("测试成功");
        } else {
            System.out.println("测试失败");
        }
    }
}