An immutable Map represents a collection of entries that cannot be altered throughout a program.
It is declared with the term, mapOf
, followed by a pair of parentheses. Within the parentheses, each key should be linked to its corresponding value with the to
keyword, and each entry should be separated by a comma.
var averageTemp = mapOf("winter" to 35, "spring" to 60, "summer" to 85, "fall" to 55)
A mutable map represents a collection of entries that possess read and write functionalities. Entries can be added, removed, or updated in a mutable map.
A mutable map can be declared with the term, mutableMapOf
, followed by a pair of parentheses holding key-value pairs.
var europeanDomains = mutableMapOf("Germany" to "de", "Slovakia" to "sk", "Hungary" to "hu", "Norway" to "no")
Keys and values within a map can be retrieved using the .keys
and .values
properties.
The .keys
property returns a list of key elements, whereas the .values
property returns a list of value elements.
To retrieve a single value associated with a key, the shorthand, [key]
, syntax can be used.
var oscarWinners = mutableMapOf("Parasite" to "Bong Joon-ho", "Green Book" to "Jim Burke", "The Shape Of Water" to "Guillermo del Toro")println(oscarWinners.keys)// Prints: [Parasite, Green Book, The Shape Of Water]println(oscarWinners.values)// Prints: [Bong Joon-ho, Jim Burke, Guillermo del Toro]println(oscarWinners["Parasite"])// Prints: Bong Joon-ho
An entry can be added to a mutable map using the put()
function. Oppositely, an entry can be removed from a mutable map using the remove()
function.
The put()
function accepts a key and a value separated by a comma.
The remove()
function accepts a key and removes the entry associated with that key.
var worldCapitals = mutableMapOf("United States" to "Washington D.C.", "Germany" to "Berlin", "Mexico" to "Mexico City", "France" to "Paris")worldCapitals.put("Brazil", "Brasilia")println(worldCapitals)// Prints: {United States=Washington D.C., Germany=Berlin, Mexico=Mexico City, France=Paris, Brazil=Brasilia}worldCapitals.remove("Germany")println(worldCapitals)// Prints: {United States=Washington D.C., Mexico=Mexico City, France=Paris, Brazil=Brasilia}
An immutable list represents a group of elements with read-only operations.
It can be declared with the term listOf
, followed by a pair of parentheses containing elements that are separated by commas.
var programmingLanguages = listOf("C#", "Java", "Kotlin", "Ruby")
A mutable list represents a collection of ordered elements that possess read and write functionalities.
It can be declared with the term, mutableListOf
followed by a pair of parentheses containing elements that are separated by commas.
var fruits = mutableListOf("Orange", "Apple", "Banana", "Mango")
In order to retrieve an element from a list, we can reference its numerical position or index using square bracket notation.
Note: Remember that the first element of a list starts at 0
.
var cars = listOf("BMW", "Ferrari", "Volvo", "Tesla")println(cars[2]) // Prints: Volvo
The size
property is used to determine the number of elements that exist in a collection.
var worldContinents = listOf("Asia", "Africa", "North America", "South America", "Antarctica", "Europe", "Australia")println(worldContinents.size) // Prints: 7
The list collection supports various operations in the form of built-in functions that can be performed on its elements.
Some functions perform read and write operations, whereas others perform read-only operations.
The functions that perform read and write operations can only be used on mutable lists while read-only operations can be performed on both mutable and immutable lists.
var seas = listOf("Black Sea", "Caribbean Sea", "North Sea")println(seas.contains("North Sea")) // Prints: true// The contains() function performs a read operation on any list and determines if an element exists.seas.add("Baltic Sea") // Error: Can't perform write operation on immutable list// The add() function can only be called on a mutable list thus the code above throws an error.
An immutable set represents a collection of unique elements in an unordered fashion whose contents cannot be altered throughout a program.
It is declared with the term, setOf
, followed by a pair of parentheses holding unique values.
var primaryColors = setOf("Red", "Blue", "Yellow")
A mutable set represents a collection of ordered elements that possess both read and write functionalities.
It is declared with the term, mutableSetOf
, followed by a pair of parentheses holding unique values.
var womenInTech = mutableSetOf("Ada Lovelace", "Grace Hopper", "Radia Perlman", "Sister Mary Kenneth Keller")
Elements in a set can be accessed using the elementAt()
or elementAtOrNull()
functions.
The elementAt()
function gets appended onto a set name and returns the element at the specified position within the parentheses.
The elementAtOrNull()
function is a safer variation of the elementAt()
function and returns null
if the position is out of bounds as opposed to throwing an error.
var companies = setOf("Facebook", "Apple", "Netflix", "Google")println(companies.elementAt(3)) // Prints: Googleprintln(companies.elementAt(4)) // Returns and Errorprintln(companies.elementAtOrNull(4)) // Prints: null