正在顯示「 2020 年 7 月 」的所有結果
7月 02, 2020 Programming
### Sorting

排序資料很多時都會在程式中出現,今天要記下的事是在 Android (Java) 把 Array 排序。

排序的概念大約是把 Array 內的 Elements 依一個特定的規則來排好,例如數字由大至細。

下是是 Javascript 的例子 :

```javascript
// data
var data = [5, 2, 3, 4, 1];

// data sort
data.sort();

// print data
console.log(data);
> 1,2,3,4,5
```

預設的 Sort 大約會有以上的效果,它可以自動理解 data type 然後進行排序。如果遇到不會處理的 Data type,就只好使用 `toString()` 方法來取出字串。

### 自訂排序的方法

上面提到我們可以自訂排序的方法,可以透過傳入一個 function 來處理排序的邏輯。

```javascript
// data
var data = [5, 2, 3, 4, 1];

// data sort
data.sort((a, b) => {
	if( a > b ) {
		return 1;
	} if( a < b ) {
		return -1;
	} else {
		return 0;
	}
});

// print data
console.log(data);
> 1,2,3,4,5
```

我們傳入的方法只需要告訴排序程式當遇到兩者要比較時的結果,而回傳就通常時 -1, 0, 和 1 三個值。

### 在 Java 上實作

以下的代碼是在 Java 上實作的例子 :

```java
// array data
int[] data = new int[]{4, 2, 5, 1, 3};

// do sort data
Arrays.sort(data, new Comparator<Integer>() {
	@Override
	public int compare(int a, int b) {
		if( a > b ) {
			return 1;
		} if( a < b ) {
			return -1;
		} else {
			return 0;
		}
	}
});
```

透過使用 interface (Comparator) 來告訴 sort 是怎樣進行的。
過去文章
2025 (9)
4 (5)
3 (1)
2 (3)
2024 (25)
11 (3)
10 (3)
9 (1)
3 (18)
2022 (6)
10 (1)
6 (2)
5 (1)
3 (1)
1 (1)
2021 (21)
11 (7)
7 (1)
6 (2)
5 (2)
4 (6)
3 (2)
2 (1)
2020 (92)
12 (1)
11 (2)
10 (4)
9 (10)
8 (5)
7 (1)
6 (3)
5 (1)
4 (4)
3 (25)
2 (7)
1 (29)
2019 (57)
12 (25)
11 (7)
9 (25)