Инициализация Массив списка пар

89
8

У меня этот класс:

abstract class SimpleHashTable extends HashTable {
type Bucket = List[Pair[K, V]]
type Table = Array[Bucket]

def alloc_data(size: Int): Table = {
var tb = new Table(size)
//tb.apply(_ => Nil)

Я не уверен, как инициализировать содержимое Table до Nil?

Пожалуйста, порекомендуйте. Благодаря,

спросил(а) 2021-01-19T13:16:03+03:00 6 месяцев, 1 неделя назад
1
Решение
110

Используйте var tb = Array.fill(size)(List[Pair[K,V]]())

scala> type Bucket = List[Pair[Int, String]]
defined type alias Bucket

scala> type Table = Array[Bucket]
defined type alias Table

scala> val tb:Table = Array.fill(5)(List[Pair[Int, String]]())
tb: Table = Array(List(), List(), List(), List(), List())

Изменение: на самом деле этот синтаксис может быть немного легче читать:

scala> val tb:Table = Array.fill(5)(Nil)
tb: Table = Array(List(), List(), List(), List(), List())

ответил(а) 2021-01-19T13:16:03+03:00 6 месяцев, 1 неделя назад
45

Вы пытались инициализировать его до пустого массива?

var tb = Array()

Изменить:

Канонический путь для пустого массива в Scala?

ответил(а) 2021-01-19T13:16:03+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема