Java 配列の技術をマスターする: 初心者からマスターへの上級パス (2)

⭐ 多次元配列

多次元配列は、配列の配列として見ることができます。2 次元、3 次元、またはそれ以上の次元の配列が存在する可能性がありますが、実際の開発ではほとんど使用されません。2次元配列まで。
ここに画像の説明を挿入

【例】2次元配列の宣言

	public class Test {
		public static void main(String[ ] args) {
		// Java中多维数组的声明和初始化应按从低维到高维的顺序进行
		int[ ][ ] a = new int[3][ ];
		a[0] = new int[2];
		a[1] = new int[4];
		a[2] = new int[3];
		// int a1[ ][ ]=new int[ ][4];//非法
	}
}

[例] 2次元配列の静的初期化

	public class Test {
		public static void main(String[ ] args) {
			int[ ][ ] a = { { 1, 2, 3 }, { 3, 4 }, { 3, 5, 6, 7 } };
			System.out.println(a[2][3]);
	}
}

ここに画像の説明を挿入

[例] 2次元配列の動的初期化

import java.util.Arrays;
		public class Test {
			public static void main(String[ ] args) {
				int[ ][ ] a = new int[3][ ];
				// a[0] = {1,2,5}; //错误,没有声明类型就初始化
				a[0] = new int[ ] { 1, 2 };
				a[1] = new int[ ] { 2, 2 };
				a[2] = new int[ ] { 2, 2, 3, 4 };
		System.out.println(a[2][3]);
		System.out.println(Arrays.toString(a[0]));
		System.out.println(Arrays.toString(a[1]));
		System.out.println(Arrays.toString(a[2]));
	}
}

実行結果は以下のようになります。
ここに画像の説明を挿入

⭐ 配列はテーブルデータを保存します

テーブルは、コンピューティングの世界で最も普及しているモデルです。インターネット上で目にするすべてのデータは、本質的には「テーブル」です。
ここに画像の説明を挿入
テーブルを観察すると、各行は 1 次元配列を使用して格納できることがわかります。

Object[ ] a1 = {1001,"高淇",18,"讲师","2-14"};
Object[ ] a2 = {1002,"高小七",19,"助教","10-10"};
Object[ ] a3 = {1003,"高小琴",20,"班主任","5-5"};

知らせ:

⭐	此处基本数据类型”1001”,本质不是 Object 对象。JAVA 编译器会自动把基本数据类型“自动装箱”成包装类对象。

この方法では、別の 2 次元配列を定義し、その中に上記の 3 つの配列を入れるだけで済みます。

Object[ ][ ] emps = new Object[3][ ];
emps[0] = a1;
emps[1] = a2;
emps[2] = a3;

[例] 2 次元配列を使用してテーブル データを保存する

import java.util.Arrays;
		public class Test {
			public static void main(String[ ] args) {
				Object[ ] a1 = {1001,"高淇",18,"讲师","2-14"};
				Object[ ] a2 = {1002,"高小七",19,"助教","10-10"};
				Object[ ] a3 = {1003,"高小琴",20,"班主任","5-5"};
				Object[ ][ ] emps = new Object[3][ ];
				emps[0] = a1;
				emps[1] = a2;
				emps[2] = a3;
		System.out.println(Arrays.toString(emps[0]));
		System.out.println(Arrays.toString(emps[1]));
		System.out.println(Arrays.toString(emps[2]));
	}
}

[例] Javabeanと1次元配列を使用してテーブル情報を保存する
ここに画像の説明を挿入

import java.util.Arrays;
		public class Test {
		 	public static void main(String[ ] args) {
 				Emp[] emps = {
 				new Emp(1001,"高淇",18,"讲师","2-14"),
 				new Emp(1002,"高小七",19,"助教","10-10"),
				new Emp(1003,"高小八",20,"班主任","5-5")
	 };
				 for (Emp e:emps){
			 System.out.println(e);
		 }
	 }
}
class Emp {
 	private int id;
 	private String name;
 	private int age;
 	private String job;
 	private String hiredate;
 		public Emp(int id, String name, int age, String job, String hiredate) {
 			this.id = id;
 			this.name = name;
 			this.age = age;
 			this.job = job;
 			this.hiredate = hiredate;
 	}
 @Override
 		public String toString() {
 			return "["+id+","+name+","+age+","+job+","+hiredate+"]";
 }
 		public int getId() {
			 return id;
 }
 		public void setId(int id) {
 			this.id = id;
 }
 		public String getName() {
 			return name;
 }
 		public void setName(String name) {
 			this.name = name;
 }
 		public int getAge() {
 			return age;
 }
 		public void setAge(int age) {
 			this.age = age;
 }
 		public String getJob() {
 			return job;
 }
 		public void setJob(String job) {
 			this.job = job;
 }
 		public String getHiredate() {
		 	return hiredate;
 }
 		public void setHiredate(String hiredate) {
 			this.hiredate = hiredate;
 	}
}

⭐同等のインターフェース

ここに画像の説明を挿入

複数のオブジェクトを比較するには、「比較ルール」を用意し、ソートを実装する必要があります。

実際、Java の並べ替えアルゴリズムの最下層も Comparable インターフェイスに依存しています。

Comparable インターフェイスにはメソッドが 1 つだけあります。
public int CompareTo(Object obj) obj は比較されるオブジェクトです。

このメソッドでは、現在のオブジェクトとオブジェクト obj を比較します。1 より大きい場合は 0 を返し、小さい場合は -1 を返します (ここでの 1 は正の整数にすることもできます。また、-1 は正の整数にすることもできます)。負の整数にしてください)。CompareTo メソッドのコードも比較的固定されています。

	public int compareTo(Object o) {
			Man man = (Man) o;
			if (this.age < man.age) {
				return -1;
	}
			if (this.age > man.age) {
				return 1;
	}
				return 0;
}

[Test Comparable Interface] Arrays クラスを使用して配列要素を並べ替える 2

import java.util.Arrays;
		public class Test {
			public static void main(String[ ] args) {
				Man[ ] msMans = { new Man(3, "a"), new Man(60, "b"), new Man(2, "c") };
				Arrays.sort(msMans);
			System.out.println(Arrays.toString(msMans));
	}
}
		class Man implements Comparable {
			int age;
			int id;
			String name;
		public Man(int age, String name) {
			super();
			this.age = age;
			this.name = name;
}
		public String toString() {
			return this.name;
}
		public int compareTo(Object o) {
			Man man = (Man) o;
			if (this.age < man.age) {
			return -1;
}
			if (this.age > man.age) {
			return 1;
}
			return 0;
	}
}

おすすめ

転載: blog.csdn.net/Wwd631255/article/details/131060800