如何在 Java 中复制数组(包括值)?

问题描述 投票:0回答:2

我正在构建一个纸牌游戏 - 目前正在构建牌组 - 我想知道如何用相同的值复制一个数组。 例如:

Card[] cards = {card.set('A', Card.spades), card.set('2', Card.spades)....};
int n = cards.length;
Card[] cardsDuplicate = new Card[2 * n]

我想要

cardsDuplicate = {card.set('A', Card.spades), card.set('2', Card.spades),card.set('A', Card.spades), card.set('2', Card.spades)};

的值

基本上复制数组第一部分中的任何值,然后在第二部分中重新应用它们。我可以想出使用 for 循环和 if 语句来做到这一点的方法,但我觉得这是极其低效且漫长的。我习惯了Python,这是我第一次使用Java,所以我可能是错的;有什么建议吗?

java arrays loops oop copy
2个回答
0
投票

尝试 System.arraycopy()。

System.arraycopy(cards, 0, cardsDuplicate, 0, n);

参考:https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#arraycopy-java.lang.Object-int-java.lang.Object-int-int-


0
投票

我建议使用来自数组的方法copyOf()。这种方法可以给你完全相同的副本,或者完全相同的arr

String[] names = new String[] {"John", "Cecille", "Mark", "Judas", "Theresa"};
/* 
   - Arrays.copyOf() method takes two params
   - 1st is the original array
   - 2 is size for your new array 
*/
String[] duplicate = Arrays.copyOf(names, names.length+1);
© www.soinside.com 2019 - 2024. All rights reserved.