Java:針對Array中的值作排序

上兩篇針對陣列與字串轉換、陣列移除重複項目作了介紹,
有興趣可以先參考:
  1. Java:陣列與字串轉換,Array to String 和 String to Array
  2. Java:移除陣列Array中重複的值

這篇則是要介紹如何對陣例中的值或字串作排序,
排序的方法有很多種,
好奇的話可以參考許久以前的文章,Sorting Algorithms:排序演算法
當中有一段 youtube 上的影片,詳細地介紹了各種排序方法。

下面的程式碼除了介紹把陣列中的項目作排序外,
也同場加映利用 TreeSet 同時將陣列作排序及移除重複項目。
適度地利用 Java 內建的資料結構,可以省下超多工喔!

 1 package werdna1222coldcodes.blogspot.com.demo.array;
 2 
 3 import java.text.ParseException;
 4 import java.util.Arrays;
 5 import java.util.Set;
 6 import java.util.TreeSet;
 7 
 8 public class ArraySortDemo {
 9 
10     public static void main(String[] args) throws ParseException {
11 
12         // 建立有重複項目之 int array
13         int intArray[] = { 4, 2, 5, 1, 5, 2, 4, 3 };
14 
15         // 利用 Arrays.sort 來排序
16         // 輸出結果:[1, 2, 2, 3, 4, 4, 5, 5]
17         arraySort(intArray);
18 
19         // 使用 
20         TreeSet,同時達成排序和移除重複項目的需求。
21         // 輸出結果:[1, 2, 3, 4, 5]
22         treeSetSort(intArray);
23     }
24 
25     static void arraySort(int[] array) {
26 
27         Arrays.sort(array);
28         String arrayString = Arrays.toString(array);
29         System.out.println(arrayString);
30     }
31 
32     static void treeSetSort(int[] duplicateArray) {
33 
34         Set<Integer> intSet = new TreeSet<Integer>();
35         for (int element : duplicateArray) {
36             intSet.add(element);
37         }
38 
39         int nonDuplicateAndSortedArray[] = new int[intSet.size()];
40 
41         Object[] tempArray = intSet.toArray();
42 
43         for (int i = 0; i < tempArray.length; i++) {
44             nonDuplicateAndSortedArray[i] = (Integer) tempArray[i];
45         }
46 
47         String arrayString = Arrays.toString(
48                              nonDuplicateAndSortedArray);
49         System.out.println(arrayString);
50     }
51 }

更多關於 Java 的教學及程式範例,請見:
Java 教學及程式範例大全

關鍵字:Java, array, string, 陣列, 字串, 值, 排序,

這個網誌中的熱門文章

2018最新博客來100,50,25折價券序號e-coupon分享

證件遺失補辦身分證/健保卡/駕照/行照/信用卡總整理

2018最新iPhone XS, XS Max, XR信用卡刷卡回饋/分期攻略!(持續更新)

【符碼刷卡報】超商消費繳費懶人包+優惠總整理

星展炫晶御璽卡國內1.2%國外2.5%現金回饋,新戶享最高8.88%多賺1000!

全家FamiPay綁台新卡綁卡送購物金,最高滿200送50!(2018/10/01~11/30)

台新@gogo一般1.5%網購3.5%+行動支付/保費密技!

國泰KOKO combo icash網購/超商/icash/繳費5%!

銀行代碼查詢:3碼銀行代碼列表、7碼分行代碼查詢

TOEIC多益成績分數查詢、計算標準與換算對照表