Java 如何删除和返回数组列表索引
我试图删除并返回数组列表中名为deck的第一个索引处的对象。我的代码返回被调用的索引0 post remove()处的对象,因此它总是返回原始组数组列表的第二个索引。我不确定如何返回0处的索引,然后将其删除Java 如何删除和返回数组列表索引,java,arraylist,Java,Arraylist,我试图删除并返回数组列表中名为deck的第一个索引处的对象。我的代码返回被调用的索引0 post remove()处的对象,因此它总是返回原始组数组列表的第二个索引。我不确定如何返回0处的索引,然后将其删除 public Card dealCard() { int i = 0; Card topCard = null; if(deck.size() > 0) { topCard = deck.get(i);
public Card dealCard()
{
int i = 0;
Card topCard = null;
if(deck.size() > 0)
{
topCard = deck.get(i);
deck.remove(topCard);
}
else
{
System.out.println("Fatal Error. Program now exiting.");
System.exit(0);
}
return topCard;
}
试试这个:
public Card dealCard()
{
int i = 0;
Card topCard = null;
//topCard.equals(deck.get(i));
//deck.remove(topCard);
if(deck.size() > 0)
{
topCard = deck.get(i);
deck.remove(i);
//temp = deck.remove(topCard);
//temp.equals(deck.remove(topCard));
}
else
{
System.out.println("Fatal Error. Program now exiting.");
System.exit(0);
}
return topCard;
}
不要删除存储在可变顶卡中的内容,而是按其索引删除该项 将索引传递给元素时,返回位于
索引处的元素。所以你要做的就是
if(deck.size() > 0)
{
topCard = deck.remove(i);
}
这将把topCard
设置为索引i
中的任何内容,并从列表中删除元素使用索引从列表中删除项目
deck.remove(i);
当您评论“deck.remove(topCard);”时,它是否返回第0个obj?我认为它是正确的。是什么让你认为它错了?是的,当remove()不在播放时它返回第0个对象它错了,因为它在调用remove()后返回索引0处的元素,而不是返回原始数组列表0处的索引,然后将其删除。否topCard=deck.get(i)
将topCard
设置为被移除前的第i张卡,然后deck.remove(topCard)
将该卡从deck
移除,但不会更改topCard
。不幸的是,仍然会导致同样的问题。我不知道该怎么做。很抱歉,这里是新的。仍然会导致相同的问题。这仍然会返回调用remove()后的第一个索引,因此它缺少原始组数组列表的索引0。
deck.remove(i);