從 Java 跳糟到 Kotlin (四) 集合

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)

參考資料

留言

這個網誌中的熱門文章

16天記下7000單字