從 Java 跳糟到 Kotlin (四) 集合
從零開始學 Kotlin 程式設計: 線上教學課程目錄
List、Map、Set 集合
Java 集合有 List、Map、Set。Kotlin 也有 List、Map、Set,但 Kotlin 中的 List、Map、Set 只能讀取,是無法進行修改,若需要可讀可寫,需使用 MutableList、MutableMap、MutableSet。
集合的方法:
- add 新增元素
- remove 移除元素
- size 集合內元素的數量
- clear 清除所有集合內的元素
List
List 集合特性:按照順序排列,可以放重覆的物件
Java 程式碼
在 Java 中,使用 List 集合操作新增、移除、讀取、全部刪除資料:
//宣告一個 List 資料型態為整數的集合變數
List<Integer> lists = new ArrayList<>();
//新增資料
lists.add(666);
lists.add(777);
lists.add(888);
System.out.println(lists);
//移除索引值為1的資料
lists.remove(1);
System.out.println(lists);
//獲取第二筆資料
lists.get(0);//可以試著用 println 將資料印出來看看
System.out.println(lists.get(0));
//刪除全部 List 內的資料
lists.clear();
System.out.println(lists);
Koltin 程式碼
在 Kotlin 中的 List 只能一開始初始資料和事後讀取該集合中的元素,之後不能進行增、刪、修。
//宣告一個 List 集合,並初始化資料,kotlin 會根據資料,自動推斷,資料型別
var lists = listOf(666,777,888)
//取出索引值為1的資料
println(lists[1])
若需要事後可以修改,需使用 MutableList 集合操作新增、移除、讀取、全部刪除資料:
//宣告一個 MutableList 資料型態為整數的集合變數
var mutableList: MutableList<Int> = mutableListOf()
//新增資料
mutableList.add(666)
mutableList.add(777)
mutableList.add(888)
println(mutableList)
//獲取索引第二筆資料
mutableList[2]
println(mutableList[2])
//移除資料為 666 的資料(需要注意的是這裏跟 Java 不同,此處移除不是根據索引筆數)
mutableList.remove(666)
println(mutableList)
//根據索引筆數刪除方式
mutableList.remove(mutableList[1])
println(mutableList)
//刪除全部 mutableList 內的資料
mutableList.clear()
println(mutableList)
Map
Map 集合特性: 採 key、value 方式存放,key 唯一不能重覆。
Java 程式碼
在 Java 中,使用 Map 集合操作新增、移除、讀取、全部刪除資料:
Map<String, Integer> map = new HashMap<>();
//新增資料
map.put("1", 666);
map.put("2", 777);
map.put("3", 888);
System.out.println(map);
//移除資料
map.remove("1");
System.out.println(map);
//獲取資料
map.get("2");
System.out.println(map);
//清除所有資料
map.clear();
System.out.println(map);
Koltin 程式碼
在 Kotlin 中的 Map 只能一開始初始資料和事後讀取元素,之後不能進行增、刪、修。
val map = mapOf("1" to 666, "2" to 777)
println(map)
若需要事後可以修改,需使用 MutableMap 集合操作新增、移除、讀取、全部刪除資料:
var mutableMap: MutableMap<String, Int> = mutableMapOf()
//新增資料
mutableMap.put("1", 666)
mutableMap.put("2", 777)
mutableMap.put("3", 888)
println(mutableMap)
//移除資料
mutableMap.remove("1")
println(mutableMap)
//獲取資料
mutableMap.get("2")
println(mutableMap.get("2"))
//刪除所有資料
mutableMap.clear()
println(mutableMap)
Set
Set 集合特性:沒有特定順序,且沒有重覆的物件
Java 程式碼
在 Java 中,使用 Set 集合操作新增、移除、讀取、全部刪除資料:
Set<Integer> set = new HashSet<>();
//新增資料
set.add(666);
set.add(777);
set.add(888);
System.out.println("set: " + set);
//移除資料
set.remove(888);
System.out.println("set: " + set);
//判斷元素,是否包含在 Set 集合內
set.contains(666);
System.out.println("set: " + set.contains(666));
//清除所有資料
set.clear();
System.out.println("set: " + set);
Koltin 程式碼
在 Kotlin 中的 Set 只能一開始初始資料和事後讀取元素,之後不能進行增、刪、修。
var set = setOf(666,777,888)
println(set)
在 Kotlin 中,使用 MutableSet 集合操作新增、移除、讀取、全部刪除資料:
var mutableSet: MutableSet<Int> = mutableSetOf()
//新增資料
mutableSet.add(666)
mutableSet.add(777)
mutableSet.add(888)
println(mutableSet)
//移除資料
mutableSet.remove(666)
println(mutableSet)
//判斷元素,是否包含在 Set 集合內
println(mutableSet.contains(666))
//清除所有資料
mutableSet.clear()
println(mutableSet)