Skip to content
DeveloperMemos

How to Use Tuples in Kotlin

Kotlin, Tuples2 min read

In Kotlin, tuples are declared using the Pair and Triple classes. The Pair class represents a tuple of two elements, and the Triple class represents a tuple of three elements. Here is an example of declaring a Pair:

1val pair = Pair("Kotlin", 1)

In this example, the Pair class is used to declare a tuple that contains a String and an Int. The first element of the tuple is the String "Kotlin", and the second element is the Int 1.

Here is an example of declaring a Triple:

1val triple = Triple("Kotlin", 1, 3.14)

In this example, the Triple class is used to declare a tuple that contains a String, an Int, and a Double. The first element of the tuple is the String "Kotlin", the second element is the Int 1, and the third element is the Double 3.14.

Accessing Tuple Elements

To access the elements of a tuple, you can use the first, second, and third properties of the Pair and Triple classes, respectively. Here is an example of accessing the elements of a Pair:

1val pair = Pair("Kotlin", 1)
2val firstElement = pair.first // returns "Kotlin"
3val secondElement = pair.second // returns 1

In this example, the first property is used to retrieve the first element of the Pair, which is the String "Kotlin". The second property is used to retrieve the second element of the Pair, which is the Int 1.

Here is an example of accessing the elements of a Triple:

1val triple = Triple("Kotlin", 1, 3.14)
2val firstElement = triple.first // returns "Kotlin"
3val secondElement = triple.second // returns 1
4val thirdElement = triple.third // returns 3.14

In this example, the first property is used to retrieve the first element of the Triple, which is the String "Kotlin". The second property is used to retrieve the second element of the Triple, which is the Int 1. The third property is used to retrieve the third element of the Triple, which is the Double 3.14.

Using Destructuring Declarations

Kotlin also allows you to use destructuring declarations to extract the elements of a tuple into separate variables. Here is an example of using destructuring declarations with a Pair:

1val pair = Pair("Kotlin", 1)
2val (firstElement, secondElement) = pair
3println(firstElement) // prints "Kotlin"
4println(secondElement) // prints 1

In this example, the Pair is declared as before, but instead of using the first and second properties to retrieve the elements, a destructuring declaration is used to extract the elements into separate variables. The variables are declared inside a set of parentheses, and the Pair is assigned to them. Then, the variables can be used independently.

Here is an example of using destructuring declarations with a Triple:

1val triple = Triple("Kotlin", 1, 3.14)
2val (firstElement, secondElement, thirdElement) = triple
3println(firstElement) // prints "Kotlin"
4println(secondElement) // prints 1
5println(thirdElement) // prints 3.14

In this example, a destructuring declaration is used to extract the elements of the Triple into three separate variables. The variables are declared inside a set of parentheses, and the Triple is assigned to them. Then, the variables can be used independently.

Using Tuples in Functions

Tuples can be used as return types and parameters of functions. Here is an example of a function that returns a Pair:

1fun getLanguageAndVersion(): Pair<String, Int> {
2 return Pair("Kotlin", 1)
3}

In this example, the getLanguageAndVersion function returns a Pair that contains a String and an Int.

Here is an example of a function that takes a Triple as a parameter:

1fun printLanguageDetails(languageDetails: Triple<String, Int, Double>) {
2 println("Language: ${languageDetails.first}")
3 println("Version: ${languageDetails.second}")
4 println("Popularity: ${languageDetails.third}")
5}

In this example, the printLanguageDetails function takes a Triple that contains a String, an Int, and a Double. The function prints the values of the elements of the Triple using the first, second, and third properties.

Conclusion

In conclusion, tuples are a useful data type in Kotlin that can be used to store a collection of heterogeneous objects. They can be declared using the Pair and Triple classes, and their elements can be accessed using the first, second, and third properties. Destructuring declarations can be used to extract the elements of a tuple into separate variables, and tuples can be used as return types and parameters of functions. Tuples provide a convenient way to group related data together and can help make your code more concise and readable.