【Android 入門開發實戰:口罩地圖】Kotlin 過濾(filter)集合資料用法

 

【Android 入門開發實戰:口罩地圖】線上免費講義課程目錄

上一節課程,我們使用了 CardView 卡片式佈局,讓資料更好閱讀,但大家會發現,要找到自己住家周邊藥局還是很麻煩,所以這一節課程,KT 將要來介紹一下,如何從口罩資料中,透過 Kotlin 標準函式庫中,所提供的 filter 語法,來獲取出我們要的資料。

filter 濾出特定資料

透過 filter 語法,過濾出縣市為「臺東縣」且鄉鎮為「池上鄉」的藥局資料:

val filterData = pharmacyInfo.features.filter { it.properties.county == "臺東縣" &&  it.properties.town=="池上鄉"}

透過上方語法,我們將可以在將近六千筆的藥局資料當中,快速過濾篩選出此筆資料:

{
    "type": "Feature",
    "properties": {
        "id": "2346100018",
        "name": "台東縣池上鄉衛生所",
        "phone": "(089)862609",
        "address": "臺東縣池上鄉中山路104號",
        "mask_adult": 1062,
        "mask_child": 170,
        "updated": "2020\/09\/24 14:32:36",
        "available": "星期一上午看診、星期二上午看診、星期三上午看診、星期四上午看診、星期五上午看診、星期六上午休診、星期日上午休診、星期一下午看診、星期二下午看診、星期三下午看診、星期四下午看診、星期五下午看診、星期六下午休診、星期日下午休診、星期一晚上休診、星期二晚上休診、星期三晚上休診、星期四晚上休診、星期五晚上休診、星期六晚上休診、星期日晚上休診",
        "note": "星期四下午無門診(醫師支援他所)、上班時間有代售防疫口罩服務(如遇假日則暫停代售)",
        "custom_note": "",
        "website": "",
        "county": "臺東縣",
        "town": "池上鄉",
        "cunli": "福原村",
        "service_periods": "NNNNNYYNNNYNYYYYYYYYY"
    },
    "geometry": {
        "type": "Point",
        "coordinates": [
            121.214811,
            23.121687
        ]
    }
}

forEach 取出所有資料

透過 forEach 的語法,可以印出我們剛剛篩選出來的藥局名稱

filterData.forEach{
                println(it.properties.name)
            }

輸出結果

台東縣池上鄉衛生所

參考資料

Kotlin Collections Overview
https://kotlinlang.org/docs/reference/collections-overview.html#kotlin-collections-overview

Filtering
https://kotlinlang.org/docs/reference/collection-filtering.html#filtering

Grouping
https://kotlinlang.org/docs/reference/collection-grouping.html#grouping

這個網誌中的熱門文章

最新入門零基礎 Java 教學【從零開始學 Java 程式設計】Java教學課程目錄 (IntelliJ IDEA 開發教學)

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

Android Studio 歷代版本下載點

nano 文字編輯器

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)