Звучит как глупый вопрос, но все, что я нашел в интернете, это мусор. Я просто не могу добавить элемент типа T
в список List[T]
. Я пытался с, myList ::= myElement
но кажется, что это создает странный объект и доступ к myList.last
всегда возвращает первый элемент, который был помещен в список.
223
List
преобразуется вListBuffer
элемент добавляется, иListBuffer
преобразованный назад (довольно много , какString
иStringBuilder
в Java), но это только предположение.Это потому, что вы не должны делать это (по крайней мере, с неизменным списком). Если вам действительно нужно добавить элемент в конец структуры данных, и эта структура данных действительно должна быть списком, и этот список действительно должен быть неизменным, тогда сделайте следующее:
или это:
источник
:+
как , несмотря на неэффективность, он перестраивается только один раз.Списки в Scala не предназначены для изменения. На самом деле, вы не можете добавлять элементы в Scala
List
; это неизменяемая структура данных , похожая на строку Java. Что вы действительно делаете, когда «добавляете элемент в список» в Scala, так это создаете новый список из существующего списка . (Источник)Вместо того, чтобы использовать списки для таких случаев использования, я предлагаю использовать
ArrayBuffer
илиListBuffer
. Эти структуры данных предназначены для добавления новых элементов.Наконец, после того, как все ваши операции выполнены, буфер может быть преобразован в список. Смотрите следующий пример REPL:
источник
Это похоже на один из ответов, но по-другому:
источник
Мы можем добавить или добавить два списка или список и массив
.
Предварение:
источник