gpt4 book ai didi

java - 如何使用自定义对象创建 libgdx 数组的副本?

转载 作者:行者123 更新时间:2023-12-01 21:44:26 25 4
gpt4 key购买 nike

我有一个包含值pawnArray的数组。我需要找到 pawnArray 中的最高值,因此使用自定义类方法 getPawn() 我检索了最高值,但我确实这样做了

    public static Pawn getPawn(Array<Pawn> strollpawns) {
Array<Pawn> pawns = strollpawns;
pawns.sort();
Pawn best = pawns.get(0);

return best;
}

因此我需要复制数组,因为此方法不起作用。我怎样才能复制这个数组?

最佳答案

如果您的问题与 Java 数组有关(语法为 Pawn[] ),那么 java.util.Arrays 类中有用于对它们进行许多不同操作的方法。您所要求的可以通过以下方式完成:

Pawn[] newArr = Arrays.copyOf(oldArr, oldArr.length);

或者,由于数组类实现了 Cloneable,因此还具有:

Pawn[] newArr = (Pawn[]) oldArr.clone(); // I don't remember if the cast is necessary

请注意,这两者都提供浅拷贝,即数组彼此独立(您可以对其中一个进行排序,而另一个中的索引不受影响),但它们的内容却不受影响。

编辑:有人善意地向我指出您的 Array<T>实际上是libgdx中的一个类。查看文档,然后,您可以简单地使用 the constructor taking another instance of Array创建浅拷贝,因为文档说新实例将具有相同类型的支持数组(不是相同的实例)。例如:

Array<T> newArr = new Array<>(oldArr); // oldArr can be either Array<? extends T> or T[]

关于java - 如何使用自定义对象创建 libgdx 数组的副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36111405/

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