Kotlin collections are similar to java. Any group of individual objects which are represented as a single unit is known as a collection of objects.
Types of Collections
In Kotlin collections are categorized into two forms.
Immutable Collection
Mutable Collection
1. Immutable Collection
It means that it supports only read-only functionalities and can not be modified elements. Immutable Collections and their corresponding methods are:
List – listOf() and listOf<T>()
Set – setOf()
Map – mapOf()
List – It is an ordered collection in which we can access elements or items by using indices – integer numbers that define a position for each element. Elements can be repeated in a list any number of times. We can not perform add or remove operations in the immutable list.
Kotlin program to demonstrate the immutable list:
fun main(args: Array<String>) {
val immutableList = listOf("Abhay","Kumar","Tiwari")
// gives compile time error
// immutableList.add = "Praveen"
for(item in immutableList){
println(item)
}
}
Output:
Abhay
Kumar
Tiwari
Set – It is a collection of unordered elements also it does not support duplicate elements. It is a collection of unique elements. Generally, the order of set elements does not have a significant effect. We can not perform add or remove operations because it is an immutable Set.
Kotlin program to demonstrate the immutable set:
fun main(args: Array<String>) {
// initialize with duplicate values
// but output with no repetition
var immutableSet = setOf(6,9,9,0,0,"Abhay","Tiwari")
// gives compile time error
// immutableSet.add(7)
for(item in immutableSet){
println(item)
}
}
Output:
6
9
0
Abhay
Tiwari
Map – Map keys are unique and hold only one value for each key, it is a set of key-value pairs. Each key maps to exactly one value. The values can be duplicates but keys should be unique. Maps are used to store logical connections between two objects, for example, a student ID and their name. As it is immutable its size is fixed and its methods support read-only access.
Kotlin program to demonstrate the immutable map:
fun main(args : Array<String>) {
var immutableMap = mapOf(9 to "Abhay",8 to "Kumar",7 to "Tiwari")
// gives compile time error
// immutableMap.put(9,"Praveen")
for(key in immutableMap.keys){
println(immutableMap[key])
}
}
Output:
Abhay
Kumar
Tiwari
2. Mutable Collection
It supports both read and write functionalities. Mutable collections and their corresponding methods are:
List – mutableListOf(),arrayListOf() and ArrayList
Set – mutableSetOf(), hashSetOf()
Map – mutableMapOf(), hashMapOf() and HashMap
List – Since a mutable list supports read and write operations, declared elements in the list can either be removed or added.
Kotlin program to demonstrate the mutable list:
fun main(args : Array<String>) {
var mutableList = mutableListOf("Abhay","Kumar","Tiwari")
// we can modify the element
mutableList[0] = "Ak"
// add one more element in the list
mutableList.add("Abhi")
for(item in mutableList){
println(item)
}
}
Output:
Ak
Kumar
Tiwari
Abhi
Set – The mutable Set supports both read and write functionality. We can access add or remove elements from the collections easily and it will preserve the order of the elements. Kotlin program to demonstrate the mutable set:
fun main(args: Array<String>) {
var mutableSet = mutableSetOf<Int>(6,10)
// adding elements in set
mutableSet.add(2)
mutableSet.add(5)
for(item in mutableSet){
println(item)
}
}
Output:
6
10
2
5
Map – It is mutable so it supports functionalities like put, remove, clear, etc. Kotlin program to demonstrate the mutable map.
fun main(args : Array<String>) {
var mutableMap = mutableMapOf<Int,String>(1 to "Mahipal",2 to "Nikhil",3 to "Rahul")
// we can modify the element
mutableMap.put(1,"Praveen")
// add one more element in the list
mutableMap.put(4,"Abhi")
for(item in mutableMap.values){
println(item)
}
}
Output:
Praveen
Nikhil
Rahul
Abhi
Hope you understand the collections and the types of kotlin in the next blog we are going to learn about Lists and ArrayLists in kotlin.
Thank you
The journey of solving bug and completing project on time in Kotlin can be challenging and lonely. If you need help regarding other sides to Kotlin, we’re here for you!
Comments