Size: a a a

2020 July 16

SK

Sergey Kapralov in JUG NN
Alexey
нет. она перестает работать (кидает exception) если вызывается НЕ в конструкторе. тоесть сохранять ее бессмысленно. не спрашивай как это делается, я не знаю.
Заменить хаштейбл на массив?
источник

A

Alexey in JUG NN
хз
источник

A

Alexey in JUG NN
что это даст?
источник

MV

Max Vorontsov in JUG NN
объекты всё равно в хипе будут хранится, не оч понятно, как это поможет
источник

MV

Max Vorontsov in JUG NN
может, заполнение вагона хранить лямбдой, а не объектом?
источник

MV

Max Vorontsov in JUG NN
т.е. хэштейбл от инта и callable
источник

MV

Max Vorontsov in JUG NN
ну и вычислять значение при обращении по индексу вагона
источник

A

Alexey in JUG NN
и как это поможет? ты не сможешь завернуть в closure fillWagon. по условию “”Each wagon must be filled in the constructor
источник

SK

Sergey Kapralov in JUG NN
Max Vorontsov
может, заполнение вагона хранить лямбдой, а не объектом?
Я предлагал то же, но без хештейбла. В условии видимо подобные юридические лазейки закрыты "Each wagon must be filled in the constructor of the Train using the fillWagon function",
источник

A

Alexey in JUG NN
тоесть не заполнил в конструкторе - получил exception если вызвал позднее.
источник

SK

Sergey Kapralov in JUG NN
Max Vorontsov
объекты всё равно в хипе будут хранится, не оч понятно, как это поможет
Да, но это будет просто массив из N интов. А не сложная структура с бакетами и хешами.
источник

A

Alexey in JUG NN
а разве бакеты это не есть массив в java? хэши все равно вычисляют просто индекс и места не занимают как я понимаю (коллизии итп не рассматриваем).
источник

MV

Max Vorontsov in JUG NN
Alexey
и как это поможет? ты не сможешь завернуть в closure fillWagon. по условию “”Each wagon must be filled in the constructor
ну про то, что заполнить в конструкторе - тут не понятно, говорится ли о том, что должна быть возможность заполнить на этапе конструктора, или же именно технически прямо в объект вагон положить значение. Из описания неясно

А про то, как поможет - не уверен, но по-моему лямбда с примитивным аругментом типа int будут на стеке хранится, а вот если ты сразу заполняешь таблицу - то создаётся объект инт, который уже занимает место в памяти. Могу ошибаться
источник

A

Alexey in JUG NN
ну создавай примитивный int а не Integer, тогда autoboxing не будет и в хипе нельзя сохранить int в общем случае как я понимаю.
источник

MV

Max Vorontsov in JUG NN
в hashtable ты примитив не положишь
источник

MV

Max Vorontsov in JUG NN
интересная задачка, в общем
в случае с интами в качестве значения вагона можно и массив использовать, но если там будет объект - то уже не прокатит. Интересно узнать решение, конечно
источник

MV

Max Vorontsov in JUG NN
источник

A

Alexey in JUG NN
Max Vorontsov
ну про то, что заполнить в конструкторе - тут не понятно, говорится ли о том, что должна быть возможность заполнить на этапе конструктора, или же именно технически прямо в объект вагон положить значение. Из описания неясно

А про то, как поможет - не уверен, но по-моему лямбда с примитивным аругментом типа int будут на стеке хранится, а вот если ты сразу заполняешь таблицу - то создаётся объект инт, который уже занимает место в памяти. Могу ошибаться
не совсем понял написанное. “должна быть возможность заполнить” - возможность есть тк передается функция и ты можешь ее вызывать. При этом если ты функцию не вызвал в конструеторе, то потом это делать бессмысленно тк она уже не будет работать.
источник

SK

Sergey Kapralov in JUG NN
Ну все то же самое что я выше предлагал.
источник

MV

Max Vorontsov in JUG NN
Alexey
не совсем понял написанное. “должна быть возможность заполнить” - возможность есть тк передается функция и ты можешь ее вызывать. При этом если ты функцию не вызвал в конструеторе, то потом это делать бессмысленно тк она уже не будет работать.
в смысле она не будет работать?
источник