Java 从数组中删除索引并压缩
我正在为学校做一个纸牌游戏,我正在尝试实现一种方法来删除指定索引的纸牌,然后压缩阵列 这是我迄今为止的代码(不工作)-有人能给我一些关于我哪里出错的建议吗?谢谢Java 从数组中删除索引并压缩,java,arrays,Java,Arrays,我正在为学校做一个纸牌游戏,我正在尝试实现一种方法来删除指定索引的纸牌,然后压缩阵列 这是我迄今为止的代码(不工作)-有人能给我一些关于我哪里出错的建议吗?谢谢 private boolean removeCardsAt(int[] index){ cards[index] = cards[cards.length - 1]; Card[] newCards = new Card[cards.length - 1]; for( int i = 0; i < newC
private boolean removeCardsAt(int[] index){
cards[index] = cards[cards.length - 1];
Card[] newCards = new Card[cards.length - 1];
for( int i = 0; i < newCards.length; i++) {
newCards[i] = cards[i];
return true;
}
return false;
}
private boolean removeCardsAt(int[]索引){
卡片[索引]=卡片[卡片.长度-1];
卡片[]新卡片=新卡片[cards.length-1];
for(int i=0;i
卡[index]
上遇到了类型问题:这没有意义,因为索引
是一个数组。也许您想在索引的元素上循环
您可能希望在假设只有一张卡需要删除的情况下尝试编写此命令,然后将其推广到多张卡。考虑参数paased是要从卡数组中删除的索引数组:-
private static boolean removeCardsAtIndex(int[] index){
int cardsLength = cards.length;
for(int i = 0 ; i < index.length ; i++){
int paramInt = index[i];
int numberOfElements = cards.length - paramInt - 1;
if (numberOfElements > 0) {
System.arraycopy(cards, paramInt + 1, cards, paramInt, numberOfElements);
cards[(--cardsLength)] = null;
}
}
Card[] newCards = new Card[cardsLength];
for( int i = 0; i < cardsLength; i++) {
newCards[i] = cards[i];
}
if(newCards.length < cards.length){
return true;
}
return false;
}
private静态布尔removeCardsAtIndex(int[]索引){
int cardsLength=cards.length;
for(int i=0;i0){
System.arraycopy(卡片,参数+1,卡片,参数,numberOfElements);
卡片[(-cardsLength)]=空;
}
}
卡片[]新卡片=新卡片[cardsLength];
对于(int i=0;i
注意:在索引数组上每次迭代后,将索引后的元素从索引位置复制到同一数组上,并且卡元素索引在每次迭代中都会更新。索引应为
int
(现在为int[]
)类型吗?这没有任何意义。指针不会有多大帮助。我假设她正在解析多个索引以便删除,例如卡片3、4、5@泽菲克。为了回答您的问题,如果没有看到某种实现代码,很难判断。您是否可以将此/预期结果包含在指定索引处的卡片中,并压缩阵列。如果任何索引与卡片不对应,则数组必须保持不变,并且该成员返回false,否则指定的卡片将被删除,数组将压缩并返回true-要删除的数组元素的参数索引-如果成功删除所有元素,则返回true;如果未删除任何元素,则返回false。