Day12---學習Java第二彈
阿新 • • 發佈:2021-07-24
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;
}
}