gpt4 book ai didi

scala - 在scala中添加一个对象列表

转载 作者:行者123 更新时间:2023-12-04 14:02:37 28 4
gpt4 key购买 nike

我试图添加并反对列表,而不仅仅是数字,所以当您举一个例子答复时,是否可以使用像我的二手车例子或水果之类的对象
我一直在寻找我在所有地方看到的所有示例,它们只是将数字添加到列表中。
我正在尝试将一些Java代码转换为Scala
转换时遇到问题的Java代码是

ArrayList usedCarList = new ArrayList();
UsedCars usedCar = new UsedCars();
usedCarList.add(usedCar);

现在,我看了一些示例,但是一旦我开始尝试使用对象,它们似乎就无法工作,即
var b = List[Int](); 
b ::= 1;
b ::= 2;
b ::= 3;

我已经尝试过以下几项内容。
var usedCarList = List();
def addCar (usedCarList: List[UsedCars]){
var usedCar = new UsedCars();
series of set operations on the usedCar
usedCar :: usedCarList;
println(usedCarList.length);
}

当我检查列表的大小时,它总是空的

最佳答案

Scala的List和Java的ArrayList之间有根本的区别:Scala的List是不可变的。

不只是只读-创建Java的人可能仍会更改Java中的只读集合。在Scala中,任何人都不能更改List

现在,让我们与显示“works”的示例进行协调:b ::= 1。该示例等效于b = 1 :: b,因此它不会更改列表。相反,它正在创建一个新列表,并将其分配给b。这听起来效率低下,但实际上速度非常快,因为List是持久的数据结构(有关更多信息,请查找该结构)。

因此,对您问题的最明显答案是使用另一种数据结构。 Scala最接近ArrayList的等效项是ArrayBuffer

但是,还有另一种可能的追求。而不是更改列表且不返回任何内容,而是返回一个新列表。这很可能需要对代码的结构进行其他更改,并且由于没有细节,因此我不会猜测它们可能是什么。

关于scala - 在scala中添加一个对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750759/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com