从对象数组中删除元素(Java)

从对象数组中删除元素(Java),java,arrays,interface,Java,Arrays,Interface,我在做一个基于卡片的游戏,我在做一个数组编辑器工具(例如,从数组中删除一个卡片对象,插入一个卡片对象,查找一张卡片,对卡片进行排序等等),所以我在做删除功能,我不确定如何完成这一点,我有一个arrayTool界面,设置了所有方法,一个arrayToolModule类,用于植入这些方法,在我的mainGame类中,我有一个控制台方法,它打印出一个简单的控制台,等待输入,然后设置所有必要的变量。非常感谢你的帮助 主要游戏类别: if(conIn==1)//Delete

我在做一个基于卡片的游戏,我在做一个数组编辑器工具(例如,从数组中删除一个卡片对象,插入一个卡片对象,查找一张卡片,对卡片进行排序等等),所以我在做删除功能,我不确定如何完成这一点,我有一个arrayTool界面,设置了所有方法,一个arrayToolModule类,用于植入这些方法,在我的mainGame类中,我有一个控制台方法,它打印出一个简单的控制台,等待输入,然后设置所有必要的变量。非常感谢你的帮助

主要游戏类别:

        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;
}