Java 快速建立整數與字串清單的寫法
在 Java 中,建立 List<Integer> 與
List<String> 是非常常見的需求。
以下依照不同 JDK 版本,整理出幾種快速建立可修改(modifiable)
清單的寫法,可依個人習慣彈性使用。
1️⃣ JDK 5(2004)起支援的寫法
自 JDK 5 起,Java 引入了 泛型(Generics) 與
自動封裝(Autoboxing),因此可以直接將
int 自動轉為 Integer。
Integer[] intArray = {1, 2, 3};
String[] strArray = {"A", "B", "C"};
List<Integer> ints =
new ArrayList<Integer>(Arrays.asList(intArray));
List<String> strings =
new ArrayList<String>(Arrays.asList(strArray));
✅ 適用於舊版系統(JDK 5 / 6)
✅ 清楚明確,但型別宣告較冗長
✅ 清楚明確,但型別宣告較冗長
2️⃣ JDK 7(2011)起支援的寫法(鑽石運算子)
JDK 7 引入了 鑽石運算子(<>),
可讓編譯器自動推斷泛型型別,使程式碼更精簡。
List<Integer> ints =
new ArrayList<>(Arrays.asList(1, 2, 3));
List<String> strings =
new ArrayList<>(Arrays.asList("A", "B"));
✅ 語法更簡潔
✅ 仍然回傳可修改的
✅ 仍然回傳可修改的
ArrayList
3️⃣ Java 9(2017)起支援的寫法(搭配 List.of)
Java 9 引入了 List.of() 作為集合工廠方法,
可快速建立不可修改的清單。
若實務上仍需要可修改的清單,可再包裝成 ArrayList。
List<Integer> ints =
new ArrayList<>(List.of(1, 2, 3));
List<String> strings =
new ArrayList<>(List.of("A", "B"));
✅ 語意清楚、現代化寫法
⚠️
⚠️
List.of() 本身不可修改,需額外包裝
✅ 小結
- JDK 5+:可使用泛型與自動封裝
- JDK 7+:可使用鑽石運算子,讓程式碼更乾淨
- Java 9+:可搭配
List.of()撰寫更語意化的程式碼
實務上建議:
👉 需要可修改清單 ⇒ 使用 new ArrayList<>(...)
👉 元素固定不變 ⇒ 直接使用 List.of()
沒有留言:
張貼留言