1. 程式人生 > 其它 >Day12---學習Java第二彈

Day12---學習Java第二彈

2021-07-22

陣列與字串

陣列(補充)

二維陣列中,a.length表示行數,a[i].length表示第i行的列數

動態初始化時,多維陣列的行數不可省略,列數可省略

陣列與方法互操作

給一個方法中傳入陣列型別,在引用傳遞的情況下,如果新陣列對值進行改變,則原陣列的值也隨之改變。

擴充套件陣列值:

public class ArrayExpend {
    public static void main(String[] args) {
        int[] a = new int[]{1, 2, 3, 4};
        System.out.println("陣列a:");
        arrayPrint(a);
 
        
int[] result1 = arrayExpend(a); System.out.println("擴充套件結果:"); arrayPrint(result1); System.out.println("after陣列a:"); arrayPrint(a); int[] result2 = arrayExpend2(a); System.out.println("擴充套件結果:"); arrayPrint(result2); System.out.println(
"after陣列a:"); arrayPrint(a); } public static int[] arrayExpend(int[] a) { if (a == null) { return new int[]{}; } //陣列引用傳遞 int[] temp = a; for (int i = 0; i < a.length; i++) { temp[i] = temp[i] * 5; } return
temp; } public static int[] arrayExpend2(int[] a) { if (a == null) { return new int[]{}; } //空間重新分配 int[] temp = new int[a.length]; for (int i = 0; i < a.length; i++) { temp[i] = a[i] * 4; } return temp; } public static void arrayPrint(int[] c) { if (c == null) { return; } for (int j = 0; j < c.length; j++) { System.out.print(c[j] + " "); } System.out.println(); } }

數字升序

java.util.Arrays.sort(arrayName)
import java.util.Arrays;
 
public class ArrayUtil {
    public static void main(String[] args) {
        int[] a = new int[]{1, 33, 5, 44, 76};//1,5,33,44,76
        System.out.println("排序之前:");
        arrayPrint(a);
        Arrays.sort(a);
        System.out.println("排序之後:");
        //改變原陣列
        arrayPrint(a);
    }
 
    public static void arrayPrint(int[] c) {
        if (c == null) {
            return;
        }
        for (int j = 0; j < c.length; j++) {
            System.out.print(c[j] + " ");
        }
        System.out.println();
    }
}

將指定源陣列中的陣列從指定位置複製到目標陣列的指定位置。

java.lang.System.arraycopy(Object src,int srcPos,Object dest, int destPos,int length);
public class ArrayUtil {
    //拷貝
    public static void main(String[] args) {
        int[] src = new int[]{1, 2, 3, 4, 5, 6, 7, 8};
        int[] dest = new int[3];
        arrayPrint(src);
        arrayPrint(dest);
        //方法一
        // for(int i=2;i<5;i++){
        // dest[i-2]=src[i];
        // }
        //方法二
        System.arraycopy(src, 2, dest, 0, 3);
        arrayPrint(src);
        arrayPrint(dest);
    }
 
    public static void arrayPrint(int[] c) {
        if (c == null) {
            return;
        }
        for (int j = 0; j < c.length; j++) {
            System.out.print(c[j] + " ");
        }
        System.out.println();
    }
}

複製指定的陣列,用零擷取或填充(如有必要),以便複製具有指定的長度。

java.util.Arrays.copyOf(源陣列名稱,新陣列長度)
import java.util.Arrays;
 
public class ArrayUtil {
    public static void main(String[] args) {
        int[] src = new int[]{1, 2, 3, 4, 5, 6, 7, 8};
        arrayPrint(src);
        int[] dest1 = Arrays.copyOf(src, 7);
        //Arrays.copyOf不改變原陣列
        arrayPrint(src);
        arrayPrint(dest1);
        int[] dest2 = Arrays.copyOf(src, 10);
        arrayPrint(dest2);
    }
 
    public static void arrayPrint(int[] c) {
        if (c == null) {
            return;
        }
        for (int j = 0; j < c.length; j++) {
            System.out.print(c[j] + " ");
        }
        System.out.println();
    }
}

物件陣列

初始化

//動態初始化
類名稱[] 物件陣列名稱 = new 類名稱[長度];
 
//靜態初始化
類名稱[] 物件陣列名稱 = new 類名稱[] {};
public class ArrayOfObjects {
    //類方法
    public static void printArray(Person[] persons) {
        for (int i = 0; i < persons.length; i++) {
            System.out.println(persons[i]);
        }
    }
 
    public static void main(String[] args) {
        Person person = new Person(1, "唐僧");//email=null; phone=null;
        System.out.println(person);//person.toString(); ——繼承自Object
 
        String s = "Bonjour";  //引用型別
        System.out.println(s);  //s.toString(); ——繼承

----------------------------------------------------------------------------------------------------------------
//動態初始化 Person[] persons = new Person[3]; persons[0] = new Person(1, "Jack"); persons[1] = new Person(2, "Tom", "[email protected]"); persons[2] = new Person(3, "Alice", "[email protected]", "15265478955"); ArrayOfObjects.printArray(persons); //靜態初始化 Person[] persons2 = new Person[]{ new Person(4, "Tony") }; ArrayOfObjects.printArray(persons2); } } class Person { private int id; private String name; private String email; private String phone; //構造方法 public Person(int id, String name) { this.id = id; this.name = name; } public Person(int id, String name, String email) { this(id, name); this.email = email; } public Person(int id, String name, String email, String phone) { this(id, name, email); this.phone = phone; }

---------------------------------------------------------------------------------------------------------------
//getter方法 public int getId() { return this.id; } public String getName() { return this.name; } public String getEmail() { return this.email; } public String getPhone() { return this.phone; }

--------------------------------------------------------------------------------------------------------------
//setter方法 public void setEmail(String email) { this.email = email; } public void setPhone(String phone) { this.phone = phone; } public String toString() { return " 編號:" + this.id + " 姓名:" + this.name + " 郵箱:" + this.email + " 電話:" + this.phone; } }