Java数组

2020-09-22  本文已影响0人  曾梦想仗剑天涯

数组的基本概念

使用数组

public class ArrayDemo {
  public static void main (String args []) {
    int data [] = new int [3];  //使用数组的动态初始化实现了数组的定义
    //  int data [] = new int [] {10, 20, 30};  静态初始化
    data [0] = 10;
    data [1] = 20;
    data [2] = 30;
    for(int x = 0; x < data.length; x++) {
      System.out.println(data[x]);
    }
    // System.out.println(data[3]);  ArrayIndexOutOfBoundsException
  }
}

数组的引用传递

public class ArrayDemo {
  public static void main (String args []) {
    int data [] = new int [] {10, 20, 30};
    int temp [] = data;
    temp [0] = 99;
    for(int x = 0; x < data.length; x++) {
      System.out.println(data[x]);
    }
  }
}
此图源于李兴华老师

foreach迭代输出

public class ArrayDemo {
  public static void main (String args []) {
    int data [] = new int [] {11, 22, 33};
    for(int temp : data) {
      System.out.println(temp);
    }
  }
}

二维数组

public class ArrayDemo {
  public static void main (String args []) {
    int data [][] = new int [][] {{1, 2, 3, 4, 5}, {6, 7, 8}, {9, 10 ,11, 12,}};
    for(int temp [] : data) {
      for(int i : temp) {
        System.out.println(i);
      }
      System.out.println();
    }
  }
}

数组和方法

public class ArrayDemo {
  public static void main (String args []) {
    int data [] = new int [] {1, 2, 3, 4, 5};
    printlnArray(data);
  }
  public static void printlnArray(int temp []) {
    for(int x : temp) {
      System.out.println(x);
    }
  }
}
此图源于李兴华老师
public class ArrayDemo {
  public static void main (String args []) {
    int data [] = initArray();
    printlnArray(data);
  }
  public static int [] initArray() {
    int arr [] = new int [] {1, 2, 3, 4, 5};
    return arr;
  }
  public static void printlnArray(int temp []) {
    for(int x : temp) {
      System.out.println(x);
    }
  }
}
此图源于李兴华老师
public class ArrayDemo {
  public static void main (String args []) {
    int data [] = new int [] {1, 2, 3, 4, 5};
    changeArray(data);
    printlnArray(data);
  }
  public static void changeArray(int arr []) {
    for(int x = 0; x < arr.length; x++) {
      arr[x] *= 2;
    }
  }
  public static void printlnArray(int temp []) {
    for(int x : temp) {
      System.out.println(x);
    }
  }
}
此图源于李兴华老师

数组相关操作方法

java.util.Arrays.sort(数组名称);    //排序
System.arraycopy(源数组, 源数组开始点, 目标数组, 目标数组开始点, 拷贝长度);    //数组拷贝

方法可变参数

class ArrayUtil {
  public static int sum(int ...data) {
    int sum = 0;
    for(int x : data) {
      sum += x;
    }
    return sum;
  }
}
public class ArrayDemo {
  public static void main (String args []) {
    System.out.println(ArrayUtil.sum(1, 2, 3));
    System.out.println(ArrayUtil.sum(new int [] {1, 2, 3}));
  }
}

对象数组

 //动态创建 
class Person {
  private String name;
  private int age;
  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
  public String getInfo() {
    return "姓名:" + this.name + "、年龄:" + this.age;
  }
}
public class ArrayDemo {
  public static void main (String args []) {
    Person per [] = new Person [3];
    per[0] = new Person("张三", 20);
    per[1] = new Person("李四", 20);
    per[2] = new Person("王五", 20);
    for(int x = 0; x < per.length; x++) {
      System.out.println(per[x].getInfo());
    }
  }
}
//静态初始化
class Person {
  private String name;
  private int age;
  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
  public String getInfo() {
    return "姓名:" + this.name + "、年龄:" + this.age;
  }
}
public class ArrayDemo {
  public static void main (String args []) {
    Person per [] = new Person [] {
      new Person("张三", 20),
      new Person("李四", 20),
      new Person("王五", 20)
    };
    for(int x = 0; x < per.length; x++) {
      System.out.println(per[x].getInfo());
    }
  }
}
此图源于李兴华老师
上一篇 下一篇

猜你喜欢

热点阅读