您如何 access/modify 在 Haxe 的列表中指定特定元素?
How do you access/modify specific elements in a List in Haxe?
我是 Haxe 的新手,我正在寻找与 Java 的 ArrayList 等效的数据结构,它是可调整大小和索引的。 Haxe 的 List
只允许访问它的第一个和最后一个元素。
这是我的用例:
我有一张 class Deck
代表一副 52 张扑克牌。 Card
类型的对象存储在 List<Card>
.
中
class Deck {
var cards:List<Card>;
public function new() {}
public function init() {
cards = new List<Card>();
for (i in 1...5) { // iterate over suits
for (j in 1...14) { // iterate over values
cards.add(new Card(j, SuitFunctions.toSuit(i)));
}
}
}
}
现在我想实现一个洗牌的功能shuffle
。
public function shuffle() {
var j:Int, k:Int;
var c:Card;
for (i in 1...1000000) {
j = Std.random(cards.length);
k = Std.random(cards.length);
c = getCardAt(j);
setCardAt(j, getCardAt(k));
setCardAt(k, c);
}
}
但是 Haxe 中的 List
s 没有被索引。我将如何实现函数 getCardAt(Int)
和 setCardAt(Int, Card)
?签名应该是这样的:
function getCardAt(i:Int):Card {
// ToDo
return new Card(0, Suit.ERROR);
}
function setCardAt(i:Int, c:Card) {
// ToDo
}
或者,是否有更适合这种情况的不同数据结构?例如 Array
是否可以在 Haxe 中调整大小和索引?
此致。
I am looking for an equivalent data structure to Java's ArrayList, which is resizable and indexed.
Array
是你想要的,它们是“动态数组”,所以它们会自动调整大小。
List
是一个链表,用的不多
我是 Haxe 的新手,我正在寻找与 Java 的 ArrayList 等效的数据结构,它是可调整大小和索引的。 Haxe 的 List
只允许访问它的第一个和最后一个元素。
这是我的用例:
我有一张 class Deck
代表一副 52 张扑克牌。 Card
类型的对象存储在 List<Card>
.
class Deck {
var cards:List<Card>;
public function new() {}
public function init() {
cards = new List<Card>();
for (i in 1...5) { // iterate over suits
for (j in 1...14) { // iterate over values
cards.add(new Card(j, SuitFunctions.toSuit(i)));
}
}
}
}
现在我想实现一个洗牌的功能shuffle
。
public function shuffle() {
var j:Int, k:Int;
var c:Card;
for (i in 1...1000000) {
j = Std.random(cards.length);
k = Std.random(cards.length);
c = getCardAt(j);
setCardAt(j, getCardAt(k));
setCardAt(k, c);
}
}
但是 Haxe 中的 List
s 没有被索引。我将如何实现函数 getCardAt(Int)
和 setCardAt(Int, Card)
?签名应该是这样的:
function getCardAt(i:Int):Card {
// ToDo
return new Card(0, Suit.ERROR);
}
function setCardAt(i:Int, c:Card) {
// ToDo
}
或者,是否有更适合这种情况的不同数据结构?例如 Array
是否可以在 Haxe 中调整大小和索引?
此致。
I am looking for an equivalent data structure to Java's ArrayList, which is resizable and indexed.
Array
是你想要的,它们是“动态数组”,所以它们会自动调整大小。
List
是一个链表,用的不多