从对象数组中删除元素(Java)
我在做一个基于卡片的游戏,我在做一个数组编辑器工具(例如,从数组中删除一个卡片对象,插入一个卡片对象,查找一张卡片,对卡片进行排序等等),所以我在做删除功能,我不确定如何完成这一点,我有一个arrayTool界面,设置了所有方法,一个arrayToolModule类,用于植入这些方法,在我的mainGame类中,我有一个控制台方法,它打印出一个简单的控制台,等待输入,然后设置所有必要的变量。非常感谢你的帮助 主要游戏类别:从对象数组中删除元素(Java),java,arrays,interface,Java,Arrays,Interface,我在做一个基于卡片的游戏,我在做一个数组编辑器工具(例如,从数组中删除一个卡片对象,插入一个卡片对象,查找一张卡片,对卡片进行排序等等),所以我在做删除功能,我不确定如何完成这一点,我有一个arrayTool界面,设置了所有方法,一个arrayToolModule类,用于植入这些方法,在我的mainGame类中,我有一个控制台方法,它打印出一个简单的控制台,等待输入,然后设置所有必要的变量。非常感谢你的帮助 主要游戏类别: if(conIn==1)//Delete
if(conIn==1)//Delete
{
System.err.println("Enter an Index: ");
setIndex = in.nextInt();
AT.deleteCard(Deck, setIndex);
}
阵列工具模块:
public Card[] deleteCard(Card[] CA, int index) {
System.err.println("Delet was Called");
CA = new Card[CA.length-1]
for(int i=0;i<CA.length;i++)
{
if(i==index)
{
CA[i] = null;
}
for(Card i: CA)
{
System.out.print(" "+i.cardVal);
}
return CA;
}
公共卡[]删除卡(卡[]CA,内部索引){
System.err.println(“调用了Delet”);
CA=新卡[CA.length-1]
对于(inti=0;i您可以使用流,这将使这非常容易
public Card[] deleteCard(Card[] cards, int index) {
Card cardToRemove = cards[index];
return Arrays.stream(cards).filter(card -> !card.equals(cardToRemove)).toArray(Card[]::new);
}
或
或者如果你不想使用流
public Card[] deleteCard(Card[] cards, int index) {
Card[] newCards = new Card[cards.length - 1];
for (int i = 0, j = 0; i < cards.length; i++) {
if (i != index) {
newCards[j++] = cards[i];
}
}
return newCards;
}
公共卡[]删除卡(卡[]卡,整数索引){
卡片[]新卡片=新卡片[cards.length-1];
for(int i=0,j=0;i
public Card[] deleteCard(Card[] cards, int index) {
Card[] newCards = new Card[cards.length - 1];
for (int i = 0, j = 0; i < cards.length; i++) {
if (i != index) {
newCards[j++] = cards[i];
}
}
return newCards;
}