Kotlin Dari Awal: Ranges dan Collections
Indonesian (Bahasa Indonesia) translation by Ilham Saputra (you can also view the original English article)
Kotlin adalah bahasa pemrograman modern yang dikompilasi ke Java bytecode. Ini gratis dan open source, dan berjanji untuk membuat coding untuk Android menjadi lebih menyenangkan.
Dalam artikel sebelumnya dalam seri ini, Anda belajar tentang nullability, loop, dan kondisi di Kotlin. Dalam tutorial ini, kami akan terus belajar bahasa dengan melihat ranges dan collections API di Kotlin.
1. Ranges
Sebuah Range di Kotlin adalah tipe unik yang mendefinisikan nilai awal dan nilai akhir. Dengan kata lain, ini adalah interval antara awal dan nilai akhir. Range di Kotlin ditutup, yang berarti bahwa nilai awal dan nilai akhir termasuk dalam range.
Sekarang kita akan melihat berbagai cara untuk menciptakan range di Kotlin.
Operator ..
1 |
val oneToFive = 1..5 |
Dalam kode di atas, kami telah membuat rentang tertutup. Variabel oneToFive ini akan menyertakan nilai-nilai berikut: 1, 2, 3, 4, 5. Kita dapat mengulangnya menggunakan for konstruk loop.
1 |
for (n in oneToFive) { |
2 |
print(n) |
3 |
}
|
Kode di atas dapat dipersingkat menjadi:
1 |
for (n in 1..5) { |
2 |
print(n) |
3 |
}
|
Kami juga dapat membuat berbagai karakter:
1 |
val aToZ = "a".."z" |
Variabel aToZ akan memiliki semua huruf dalam abjad Inggris.
Fungsi rangeTo()
Operator .. dapat diganti dengan fungsi ekstensi rangeTo() untuk membuat range. Sebagai contoh, kita juga dapat melakukan ini 1.rangeTo(5) dan itu akan tetap memiliki hasil yang sama seperti menggunakan operator .. seperti yang dibahas sebelumnya.
1 |
val oneToFive: IntRange = 1.rangeTo(5) |
Fungsi downTo()
Ini adalah fungsi ekstensi lain yang akan membuat rentang mulai dari angka yang diberikan hingga yang lain.
1 |
val fiveToOne = 5.downTo(1) |
Kita dapat memodifikasi rentang menggunakan fungsi step(). Ini akan memodifikasi delta antara setiap elemen dalam range.
1 |
val oneToTenStep = 1..10 step 2 // 1, 3, 5, 7, 9 |
Kode di atas akan berisi angka ganjil antara 1 dan 10.
Operator in
Operator in digunakan untuk memastikan apakah suatu nilai hadir dalam range yang diberikan.
1 |
if (5 in 1..10) { |
2 |
print("Yes 5 is in the range") // prints "Yes 5 is in the range" |
3 |
}
|
Dalam kode di atas, kami memeriksa untuk melihat apakah 5 berada dalam rentang 1..10 menggunakan operator in. Kita juga dapat melakukan yang sebaliknya dengan menggunakan !n untuk memeriksa apakah 5 tidak dalam range.
2. Collections
Collections digunakan untuk menyimpan kelompok objek terkait dalam memori. Dalam collection, kita dapat mengambil, menyimpan, atau mengatur objek. Kotlin menyediakan koleksi API-nya sebagai pustaka standar yang dibangun di atas Java Collections API. (Kami akan membahas antarmuka di Kotlin di posting masa depan.)
Anda harus mencatat bahwa antarmuka ini terkait dengan penerapannya pada waktu kompilasi. Anda tidak dapat melihat kode sumber implementasi di Kotlin, karena koleksi benar-benar diimplementasikan oleh Koleksi Java standar seperti ArrayList, Maps, HashMap, Sets, HashSet, List dan sebagainya. Untuk benar-benar memahami koleksi API di Kotlin, Anda harus terbiasa dengan kelas dasar dan antarmuka di Java ini.
Di bagian ini, kita akan belajar tentang List, Set dan Map collection di Kotlin. (Jika Anda menginginkan penyegaran pada array di Kotlin, silakan kunjungi tutorial pertama dalam seri ini.)
Koleksi Kotlin memberi kita kemampuan untuk mencapai banyak hal dengan hanya sedikit kode—tidak seperti di Java, yang tampaknya membutuhkan banyak kode untuk mencapai sedikit! Kotlin memiliki dua varian collection: bisa berubah dan tidak berubah. Kumpulan yang bisa berubah memberi kita kemampuan untuk memodifikasi koleksi dengan menambahkan, menghapus, atau mengganti elemen. Collection yang tidak dapat diubah tidak dapat dimodifikasi dan tidak memiliki metode penolong ini.
Perhatikan bahwa penambahan, penghapusan atau penggantian elemen dalam collection tidak berubah dimungkinkan melalui fungsi operator (kita akan segera mendapatkannya), tetapi ini akhirnya akan membuat collection baru.
Antarmuka Iterable
Antarmuka Iterable Kotlin ada di bagian atas hierarki kelas koleksi. Antarmuka ini memungkinkan koleksi direpresentasikan sebagai urutan elemen (yang dapat diulang secara alami).
1 |
public interface Iterable<out T> { |
2 |
public abstract operator fun iterator(): Iterator<T> |
3 |
}
|
Antarmuka Collection
Antarmuka Collection Kotlin memperluas antarmuka Iterable. Antarmuka Collection tidak dapat diubah. Dengan kata lain, Anda memiliki akses hanya-baca ke koleksi. Antarmuka Set dan List (lebih lanjut tentang ini segera) di Kotlin memperpanjang antarmuka ini.
Beberapa fungsi dan properti yang tersedia di antarmuka Collection adalah:
-
size: properti ini mengembalikan ukuran collection. -
isEmpty(): mengembalikan nilai true jika collection kosong atau salah jika sebaliknya. -
contains(element: E): mengembalikan nilai true jika elemen yang ditentukan dalam argumen ada dalam collection. -
containsAll(element: Collection<E>): mengembalikan nilai true jika elemen dalam collection dilewatkan ketika argumen ada dalam collection.
1 |
public interface Collection<out E> : Iterable<E> { |
2 |
public val size: Int |
3 |
public fun isEmpty(): Boolean |
4 |
public operator fun contains(element: @UnsafeVariance E): Boolean |
5 |
override fun iterator(): Iterator<E> |
6 |
public fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean |
7 |
}
|
Antarmuka MutableIterable
Antarmuka ini di Kotlin memberi kita iterator yang bisa berubah-ubah dari parent antarmuka Iterable.
1 |
public interface MutableIterable<out T> : Iterable<T> { |
2 |
override fun iterator(): MutableIterator<T> |
3 |
}
|
Antarmuka MutableCollection
Antarmuka MutableCollection di Kotlin adalah antarmuka khusus yang memungkinkan koleksi menjadi bisa berubah. Dengan kata lain, menambah dan menghapus operasi dapat dilakukan pada koleksi yang diberikan. Antarmuka ini memperluas antarmuka Collection dan antarmuka MutableIterable yang sudah dibahas di atas. Antarmuka MutableSet dan MutableList (kita akan segera mendapatkannya) di Kotlin memperluas antarmuka ini. Fungsi-fungsi yang tersedia di antarmuka ini—terlepas dari yang tersedia di parent—adalah:
-
add(elemen: E): menambahkan elemen yang dilewatkan sebagai argumen ke collection dan mengembalikan nilai true jika berhasil atau salah jika collection tidak mendukung duplikat dan elemen sudah ada.
-
remove(element: E): menghilangkan elemen yang dilewatkan sebagai argumen dari collection. Mengembalikan nilai true jika berhasil atau salah jika tidak ada dalam collection. -
addAll(elements: Collection<E>): menambahkan semua elemen dalam collection yang dilewatkan sebagai argumen ke collection. Mengembalikan nilai true jika berhasil atau salah jika tidak ada yang ditambahkan. -
removeAll(elements: Collection<E>): menghapus semua elemen yang ada dalam collection yang dilewatkan sebagai argumen. Mengembalikan nilai true jika berhasil atau salah jika tidak ada yang dihapus.
-
retainAll(elements: Collection<E>): hanya mempertahankan elemen yang ada dalam collection yang dilewatkan sebagai argumen. Mengembalikan nilai true jika berhasil atau salah jika tidak ada yang dipertahankan.
-
clear(): menghapus semua elemen dari collection ini.
1 |
public interface MutableCollection<E> : Collection<E>, MutableIterable<E> { |
2 |
override fun iterator(): MutableIterator<E> |
3 |
public fun add(element: E): Boolean |
4 |
public fun remove(element: E): Boolean |
5 |
public fun addAll(elements: Collection<E>): Boolean |
6 |
public fun removeAll(elements: Collection<E>): Boolean |
7 |
public fun retainAll(elements: Collection<E>): Boolean |
8 |
public fun clear(): Unit |
9 |
}
|
Sekarang Anda telah belajar tentang antarmuka teratas dalam hirarki kelas collection di Kotlin, sekarang mari kita lihat bagaimana Kotlin menangani collection seperti Daftar, Kumpulan, dan Peta di bagian yang tersisa dari tutorial.
Lists
Daftar adalah kumpulan elemen yang dipesan. Ini adalah collection populer yang banyak digunakan. Mari kita lihat cara-cara berbeda untuk membuat daftar di Kotlin.
Menggunakan fungsi listOf()
Di Kotlin, kita dapat membuat daftar yang tidak dapat diubah (read-only) menggunakan fungsi helip listOf() dari perpustakaan standar Kotlin. Fungsi ini mengembalikan tipe antarmuka Kotlin List.
1 |
var numbers: List<Int> = listOf(1, 2, 3, 4, 5) |
2 |
var names: List<String> = listOf("Chike", "Nnamdi", "Mgbemena") |
3 |
for (name in names) { |
4 |
println(name) |
5 |
}
|
Menjalankan kode di atas akan mencetak:
1 |
Chike |
2 |
Nnamdi |
3 |
Mgbemena |
Selain itu, kita dapat memberikan nilai dari berbagai jenis ke dalam listOf() sebagai argumen dan hasilnya akan tetap berfungsi—ini akan menjadi daftar tipe campuran.
1 |
var listMixedTypes = listOf("Chike", 1, 2.445, 's') // will still compile |
Menggunakan fungsi emptyList()
Fungsi ini hanya membuat daftar berubah kosong dan mengembalikan tipe antarmuka Kotlin List.
1 |
val emptyList: List<String> = emptyList<String>() |
Menggunakan fungsi listOfNotNull()
Fungsi ini membuat daftar baru yang tidak berubah hanya berisi elemen yang tidak null. Perhatikan bahwa fungsi ini mengembalikan jenis antarmuka Kotlin List juga.
1 |
val nonNullsList: List<String> = listOfNotNull(2, 45, 2, null, 5, null) |
Antarmuka List dari perpustakaan standar Kotlin hanya memperluas antarmuka Collection. Dengan kata lain, satu-satunya parent adalah antarmuka Collection. Ini mengabaikan semua fungsi dalam antarmuka orangtua untuk memenuhi kebutuhan khusus dan juga mendefinisikan fungsi sendiri, seperti:
-
get(index: Int): operator fungsi yang mengembalikan elemen pada indeks yang ditentukan. -
indexOf(element: E): mengembalikan indeks dari kemunculan pertama dari elemen yang dilewatkan sebagai argumen dalam daftar, atau -1 jika tidak ada yang ditemukan.
-
lastIndexOf(elemen: E): mengembalikan indeks kemunculan terakhir dari elemen yang dilewatkan sebagai argumen dalam daftar, atau -1 jika tidak ada yang ditemukan. -
listIterator(): mengembalikan daftar iterator atas elemen-elemen dalam daftar. -
subList(fromIndex: Int, toIndex: Int): mengembalikan daftar yang berisi bagian daftar antara awal dan akhir indeks yang ditentukan.
1 |
println(names.size) // 3 |
2 |
println(names.get(0)) // "Chike" |
3 |
println(names.indexOf("Mgbemena")) // 2 |
4 |
println(names.contains("Nnamdi")) // 'true' |
Menggunakan fungsi arrayListOf()
Ini menciptakan daftar yang bisa berubah dan mengembalikan tipe Java ArrayList.
1 |
val stringList: ArrayList<String> = arrayListOf<String>("Hello", "You", "There") |
Menggunakan Fungsi mutableListOf()
Untuk menambah, menghapus atau mengganti nilai dalam daftar, kita perlu membuat daftar yang dapat diubah. Kita dapat mengubah daftar tidak berubah menjadi yang bisa berubah dengan memanggil fungsi toMutableList() pada daftar. Namun, perhatikan bahwa metode ini akan membuat daftar baru.
1 |
var mutableNames1 = names.toMutableList() |
2 |
mutableNames1.add("Ruth") // now mutable and added "Ruth" to list |
Untuk membuat daftar yang dapat diubah dari jenis tertentu dari awal, mis. String, kita menggunakan mutableListOf<String>(), sedangkan untuk tipe campuran kita bisa menggunakan fungsi mutableListOf().
1 |
// a mutable list of a certain type e.g. String
|
2 |
val mutableListNames: MutableList<String> = mutableListOf<String>("Josh", "Kene", "Sanya") |
3 |
mutableListNames.add("Mary") |
4 |
mutableListNames.removeAt(1) |
5 |
mutableListNames[0] = "Oluchi" // replaces the element in index 0 with "Oluchi" |
6 |
|
7 |
// a mutable list of mixed types
|
8 |
val mutableListMixed = mutableListOf("BMW", "Toyota", 1, 6.76, 'v') |
Fungsi-fungsi ini akan mengembalikan tipe antarmuka Kotlin MutableList. Antarmuka ini memperluas kedua antarmuka MutableCollection dan List dibahas sebelumnya di bagian ini. Antarmuka MutableList menambahkan metode untuk pengambilan atau penggantian item berdasarkan posisinya:
-
set(index: Int, element: E): mengganti elemen dalam daftar dengan elemen lain. Ini mengembalikan elemen sebelumnya pada posisi yang ditentukan.
-
add(index: Int, element: E): menyisipkan elemen pada indeks yang ditentukan. -
removeAt(index: Int): menghilangkan elemen pada indeks tertentu.
1 |
val mutableListFood: MutableList<String> = mutableListOf<String>("Rice & stew", "Jollof rice", "Eba & Egusi", "Fried rice") |
2 |
mutableListFood.remove("Fried rice") |
3 |
mutableListFood.removeAt(0) |
4 |
mutableListFood.set(0, "Beans") |
5 |
mutableListFood.add(1, "Bread & tea") |
6 |
|
7 |
for (foodName in mutableListFood) { |
8 |
println(foodName) |
9 |
}
|
Menjalankan kode di atas, kami menghasilkan hasil sebagai berikut:
1 |
Beans |
2 |
Bread & tea |
3 |
Eba & Egusi |
Perhatikan bahwa semua fungsi ini membuat Java ArrayList di belakang layar.
Sets
Sebuah set adalah koleksi elemen unik yang tidak disusun. Dengan kata lain, tidak dapat memiliki duplikat! Mari kita lihat beberapa cara berbeda untuk membuat sebuah set di Kotlin. Masing-masing menciptakan struktur data yang berbeda, yang masing-masing dioptimalkan untuk jenis tugas tertentu.
Menggunakan fungsi setOf()
Untuk membuat set immutable (read-only) di Kotlin, kita bisa menggunakan fungsi setOf(), yang mengembalikan tipe antarmuka Kotlin Set.
1 |
// creates a immutable set of mixed types
|
2 |
val mixedTypesSet = setOf(2, 4.454, "how", "far", 'c') // will compile |
3 |
|
4 |
var intSet: Set<Int> = setOf(1, 3, 4) // only integers types allowed |
Perhatikan bahwa antarmuka Kotlin Set hanya memperluas antarmuka Collection Kotlin dan menimpa semua properti yang tersedia di induknya.
Menggunakan Fungsi hashSetOf()
Menggunakan fungsi hashSetOf() menciptakan koleksi Java HashSet yang menyimpan elemen dalam tabel hash. Karena fungsi ini mengembalikan tipe Java HashSet, kita bisa menambahkan, menghapus, atau menghapus elemen di set. Dengan kata lain, itu bisa berubah.
1 |
val intsHashSet: java.util.HashSet<Int> = hashSetOf(1, 2, 6, 3) |
2 |
intsHashSet.add(5) |
3 |
intsHashSet.remove(1) |
Menggunakan Fungsi sortedSetOf()
Menggunakan fungsi sortetSetOf() membuat koleksi Java TreeSet di belakang layar, yang memerintahkan elemen berdasarkan pada pemesanan alami mereka atau oleh komparator. Set ini juga bisa berubah.
1 |
val intsSortedSet: java.util.TreeSet<Int> = sortedSetOf(4, 1, 7, 2) |
2 |
intsSortedSet.add(6) |
3 |
intsSortedSet.remove(1) |
4 |
intsSortedSet.clear() |
Menggunakan Fungsi linkedSetOf()
Fungsi ini mengembalikan tipe Java LinkedHashSet. Set yang dapat berubah ini mempertahankan daftar yang ditautkan dari entri di set, dalam urutan di mana mereka disisipkan.
1 |
val intsLinkedHashSet: java.util.LinkedHashSet<Int> = linkedSetOf(5, 2, 7, 2, 5) // 5, 2, 7 |
2 |
intsLinkedHashSet.add(4) |
3 |
intsLinkedHashSet.remove(2) |
4 |
intsLinkedHashSet.clear() |
Menggunakan Fungsi mutableSetOf()
Kita bisa menggunakan mutableSetOf() untuk membuat set yang bisa berubah. Fungsi ini mengembalikan tipe antarmuka Kotlin MutableSet. Di belakang layar, fungsi ini hanya menciptakan Java LinkedHashSet.
1 |
// creates a mutable set of int types only
|
2 |
val intsMutableSet: MutableSet<Int> = mutableSetOf(3, 5, 6, 2, 0) |
3 |
intsMutableSet.add(8) |
4 |
intsMutableSet.remove(3) |
Antarmuka MutableSet memperluas antarmuka MutableCollection dan Set.
Maps
Maps mengaitkan kunci dengan nilai. Kunci harus unik, tetapi nilai yang terkait tidak perlu. Dengan begitu, setiap kunci dapat digunakan untuk mengidentifikasi nilai terkait secara unik, karena peta memastikan Anda tidak memiliki kunci duplikat dalam koleksi. Di belakang layar, Kotlin menggunakan koleksi Map Java untuk mengimplementasikan jenis koleksi peta.
Menggunakan Fungsi mapOf()
Untuk membuat koleksi Map yang tidak berubah atau hanya-baca di Kotlin, kami menggunakan fungsi mapOf(). Kami membuat peta dengan fungsi ini dengan memberikan daftar pasangan—nilai pertama adalah kunci, dan yang kedua adalah nilainya. Memanggil fungsi ini mengembalikan tipe antarmuka Kotlin Map.
1 |
val callingCodesMap: Map<Int, String> = mapOf(234 to "Nigeria", 1 to "USA", 233 to "Ghana") |
2 |
for ((key, value) in callingCodesMap) { |
3 |
println("$key is the calling code for $value") |
4 |
}
|
5 |
print(callingCodesMap[234]) // Nigeria |
Menjalankan kode di atas akan menghasilkan hasil:
1 |
234 is the calling code for Nigeria |
2 |
1 is the calling code for USA |
3 |
233 is the calling code for Ghana |
Tidak seperti List dan Set interface di Kotlin yang memperluas antarmuka Collection, antarmuka Map tidak memperpanjang sama sekali. Beberapa properti dan fungsi yang tersedia di antarmuka ini adalah:
-
size: properti ini mengembalikan ukuran koleksi peta. -
isEmpty(): mengembalikan nilai true jika peta kosong atau salah jika sebaliknya. -
containsKey(key: K): mengembalikan nilai true jika peta berisi kunci dalam argumen. -
containsValue(value: V): mengembalikan nilai true jika peta memetakan satu atau lebih kunci ke nilai yang dilewatkan sebagai argumen. -
get(key: K): mengembalikan nilai yang cocok dengan kunci yang diberikan atau "null" jika tidak ada yang ditemukan. -
keys: properti ini mengembalikanSetyang tidak berubah dari semua kunci di peta. -
values: mengembalikanCollectionimmutable dari semua nilai di peta.
Menggunakan Fungsi mutableMapOf()
Fungsi MutableMapOf() membuat peta yang bisa diubah agar kami dapat menambah dan menghapus elemen di peta. Ini mengembalikan jenis antarmuka Kotlin MutableMap.
1 |
val currenciesMutableMap: MutableMap<String, String> = mutableMapOf("Naira" to "Nigeria", "Dollars" to "USA", "Pounds" to "UK") |
2 |
println("Countries are ${currenciesMutableMap.values}") // Countries are [Nigeria, USA, UK] |
3 |
println("Currencies are ${currenciesMutableMap.keys}") // Currencies are [Naira, Dollars, Pounds] |
4 |
currenciesMutableMap.put("Cedi", "Ghana") |
5 |
currenciesMutableMap.remove("Dollars") |
Antarmuka MutableMap tidak memperluas antarmuka MutableCollection; hanya orang tua adalah antarmuka Map. Ini menimpa keys, entries dan values properti dari antarmuka induk untuk mendefinisikan ulang mereka. Berikut adalah beberapa fungsi tambahan yang tersedia di antarmuka MutableMap:
-
put(key: K, value: V): menyisipkan kunci, pasangan nilai ke dalam peta. Ini akan mengembalikan nilai sebelumnya yang terhubung dengan kunci atau null jika kunci tersebut tidak digunakan sebelumnya. -
remove(key: K): menghapus kunci dan nilai terkait dari peta. -
putAll(from: Map<out K, V>): memperbarui peta dengan semua data dari peta yang diberikan. Kunci baru akan ditambahkan, dan kunci yang ada akan diperbarui dengan nilai-nilai baru. -
clear(): menghapus semua elemen dari peta.
Kita bisa mendapatkan nilai untuk kunci menggunakan fungsi get(). Kita juga bisa menggunakan notasi braket persegi sebagai cara pintas untuk get().
1 |
print(currenciesMutableMap.get("Nigeria")) // will print Naira |
2 |
print(currenciesMutableMap["Nigeria"]) // will print Naira |
Menggunakan Fungsi hashMapOf()
Menggunakan fungsi ini mengembalikan tipe Java HashMap yang bisa berubah. Kelas HashMap menggunakan tabel hash untuk mengimplementasikan antarmuka Map Java.
1 |
val personsHashMap: java.util.HashMap<Int, String> = hashMapOf(1 to "Chike", 2 to "John", 3 to "Emeka") |
2 |
personsHashMap.put(4, "Chuka") |
3 |
personsHashMap.remove(2) |
4 |
print(personsHashMap[1]) // will print Chike |
Menggunakan Fungsi linkedHashMap()
Fungsi ini mengembalikan tipe Java LinkedHashMap yang bisa berubah. Kelas LinkedHashMap memperluas Java HashMap dan mempertahankan daftar terkait dari entri di peta dalam urutan di mana mereka disisipkan.
1 |
val postalCodesHashMap: java.util.LinkedHashMap<String, String> = |
2 |
linkedMapOf("NG" to "Nigeria","AU" to "Australia","CA" to "Canada") |
3 |
postalCodesHashMap.put("NA", "Namibia") |
4 |
postalCodesHashMap.remove("AU") |
5 |
postalCodesHashMap.get("CA") // Canada |
Menggunakan Fungsi sortedMapOf()
Fungsi ini mengembalikan sejenis SortedMap Jawa yang bisa berubah. Kelas Java SortedMap melihat bahwa entri dalam peta diselenggarakan dalam urutan menaik kunci.
1 |
val personsSortedMap: java.util.SortedMap<Int, String> = sortedMapOf(2 to "Chike", 1 to "John", 3 to "Emeka") |
2 |
personsSortedMap.put(7, "Adam") |
3 |
personsSortedMap.remove(3) |
Ingat, penerapan antarmuka koleksi ini di Kotlin terjadi pada waktu kompilasi.
Fungsi Pengoperasian Koleksi
Kotlin memberi kita banyak fungsi operator yang berguna yang disebut fungsi ekstensi yang dapat dipanggil pada koleksi. Mari kita lihat beberapa yang paling berguna.
Fungsi last()
Fungsi operator ini mengembalikan elemen terakhir dalam koleksi seperti daftar atau set. Kami juga dapat menyediakan predikat untuk mencari di dalam subset elemen.
1 |
val stringList: List<String> = listOf("in", "the", "club") |
2 |
print(stringList.last()) // will print "club" |
3 |
|
4 |
// given a predicate
|
5 |
print(stringList.last{ it.length == 3}) // will print "the" |
6 |
|
7 |
val intSet: Set<Int> = setOf(3, 5, 6, 6, 6, 3) |
8 |
print(intSet.last()) // will print 6 |
Fungsi first()
Fungsi operator ini mengembalikan elemen pertama saat dipanggil pada koleksi seperti daftar atau set. Jika predikat diberikan, ia kemudian menggunakan predikat untuk membatasi operasi ke subset elemen.
1 |
print(stringList.first()) // will print "in" |
2 |
print(intSet.first()) // will print 3 |
Fungsi max()
Meminjam fungsi operator ini pada koleksi seperti daftar atau set mengembalikan elemen terbesar, atau null jika tidak ada elemen terbesar ditemukan.
1 |
val intList: List<Int> = listOf(1, 3, 4) |
2 |
print(intList.max()) // will print 4 |
3 |
print(intSet.max()) // will print 6 |
Fungsi drop()
Memanggil fungsi operator ini mengembalikan daftar atau set baru yang berisi semua elemen kecuali elemen pertama.
1 |
print(stringList.drop(2)) // will print "club" |
Fungsi plus()
Fungsi operator ini mengembalikan koleksi yang berisi semua elemen asli dan kemudian elemen yang diberikan jika belum ada dalam koleksi. Ini akan berakhir dengan membuat daftar baru, bukan memodifikasi daftar.
1 |
print(intList.plus(6)) // will print [1, 3, 4, 6] |
Fungsi minus()
Kebalikan dari fungsi plus() adalah fungsi minus(). Ini mengembalikan koleksi yang berisi semua elemen dari set asli kecuali elemen yang diberikan. Ini juga akhirnya membuat daftar baru, bukannya mengubah daftar.
1 |
print(intList.minus(3)) // will print [1, 4] |
Fungsi average()
Memanggil fungsi operator ini akan menghasilkan jumlah elemen rata-rata dalam koleksi.
1 |
print(intList.average()) // will print 2.6666666666666665 |
Sebagian besar fungsi ekstensi ini tersedia di perpustakaan standar koleksi Kotlin. Anda disarankan untuk memeriksa dokumentasi untuk mempelajari tentang yang lain.
Kesimpulan
Dalam tutorial ini, Anda belajar tentang jangkauan dan koleksi API dalam bahasa pemrograman Kotlin. Dalam tutorial berikutnya dalam seri Kotlin From Scratch, Anda akan diperkenalkan pada fungsi-fungsi di Kotlin. Sampai jumpa lagi!
Untuk mempelajari lebih lanjut tentang bahasa Kotlin, saya sarankan untuk mengunjungi dokumentasi Kotlin. Atau lihat beberapa posting pengembangan aplikasi Android kami yang lain di sini di Envato Tuts!


Android SDKPengantar Komponen Arsitektur AndroidTin Megali

Machine LearningBuat Chatbots di Android Dengan IBM WatsonAshraff Hathibelagal

Android SDKJava vs. Kotlin: Haruskah Anda Menggunakan Kotlin untuk Pengembangan Android?Jessica Thornsby

Android SDKTip Singkat: Tulis Kode Pembersih Dengan Konversi Kotlin SAMAshraff Hathibelagal

Android SDKAndroid O: Verifikasi Nomor Telepon Dengan Token SMSChike Mgbemena



