В данной статье мы рассмотрим массивы в языке программирования Scala.
Массивы в Scala – это структура данных фиксированного размера, которая хранит коллекцию однотипных элементов.
Для объявления массива мы используем запись следующего вида:
var stringArray[String] = new Array[String](10)
ИЛИ
var stringArray = new Array[String](10);
В данном случае, мы создаем массив строк (String), который состоит из 10 элементов.
Для понимания того, как это работает на практике, рассмотрим простой пример:
package net.proselyte.scalatutorial.arrays
/**
* Simple Scala class that demonstrates arrays in action.
*
* @author Eugene Suleimanov
*/
object ArrayDemo {
def main(args: Array[String]) {
val integerArray = Array(10, 20, 30, 40, 50);
println("integerArray: ");
for (arrayElement <- integerArray) {
print(arrayElement + " ");
}
println();
var integerArrayTotalSum = 0;
for (arrayElement <- integerArray) {
integerArrayTotalSum += arrayElement;
}
println("Total sum of array elements is: " + integerArrayTotalSum);
}
}
В результате выполнения данной программы мы получим следующий вывод в консоль:
integerArray:
10 20 30 40 50
Total sum of array elements is: 150
Process finished with exit code 0
Так же, как и в Java, в языке программирования Scala у нас есть возможность создавать многомерные массивы.
Для создания данного вида массива используется запись следующего вида:
var twoDimensionalArray = ofDim[String](2,2);
Здесь мы создали 2-мерный массив строк.
Рассмотрим следующий пример:
package net.proselyte.scalatutorial.arrays
import Array._
/**
* Simple Scala class that demonstrates multi-dimensional array in action.
*
* @author Eugene Suleimanov
*/
object MultiDimensionalArrayDemo {
def main(args: Array[String]) {
var twoDimensionalArray = ofDim[String](5, 5);
println("Filling twoDimensionalArray...")
for(i <- 0 to 4){
for(j <- 0 to 4){
twoDimensionalArray(i)(j) = "*";
}
}
println("twoDimensionalArray:")
for(i <- 0 to 4){
for(j <- 0 to 4){
print(twoDimensionalArray(i)(j) + " ");
}
println()
}
}
}
В результате выполнения данной программы мы получим следующий вывод в консоль:
Filling twoDimensionalArray...
twoDimensionalArray:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Process finished with exit code 0
Кроме того, в Scala предусмотрен механизм для слияния массивов. Рассмотрим следующий пример:
package net.proselyte.scalatutorial.arrays
import Array._
/**
* Simple Scala class that demonstrates array concatenation in action.
*
* @author Eugene Suleimanov
*/
object ArrayConcatenationDemo {
def main(args: Array[String]) {
val integerArrayOne = Array(2, 4, 6, 8);
val integerArrayTwo = Array(1, 3, 5, 7);
println("integerArrayOne: ")
for (arrayElement <- integerArrayOne) {
print(arrayElement + " ");
}
println();
println("integerArrayTwo: ")
for (arrayElement <- integerArrayTwo) {
print(arrayElement + " ");
}
println();
val integerConcatenatedArray = concat(integerArrayOne, integerArrayTwo);
println("integerConcatenatedArray: ")
for (arrayElement <- integerConcatenatedArray) {
print(arrayElement + " ");
}
println()
val sortedIntegerConcatenatedArray = integerConcatenatedArray.sorted;
println("sortedIntegerConcatenatedArray: ")
for (arrayElement <- sortedIntegerConcatenatedArray) {
print(arrayElement + " ");
}
}
}
Результат выполнения данной программы будет следующим:
integerArrayOne:
2 4 6 8
integerArrayTwo:
1 3 5 7
integerConcatenatedArray:
2 4 6 8 1 3 5 7
sortedIntegerConcatenatedArray:
1 2 3 4 5 6 7 8
Process finished with exit code 0
Кроме того, в Scala разработан ряд методов для работы с массивами, с которыми вы можете ознакомиться в документации.
На этом мы заканчиваем изучение массивов в Scala.
В следующей статье мы рассмотрим функции в данном языке программирования.