我试图删除并返回名为deck的数组列表的第一个索引处的对象。我的代码在调用remove()之后返回索引0处的对象,因此它总是返回原始deck数组列表的第二个索引。我不确定如何将索引返回0,然后将其删除。
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;
}
答案 0 :(得分:1)
remove(int index)
会返回index
处的元素。所以你要做的就是
if(deck.size() > 0)
{
topCard = deck.remove(i);
}
这会将topCard
设置为索引为i
的任何内容,并从列表中删除该元素
答案 1 :(得分:0)
试试这个:
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;
}
答案 2 :(得分:0)
请勿删除存储在变量顶部卡片中的内容,而是删除其索引中的项目。
public Card dealCard() { int i = 0; Card topCard = null; if(deck.size() > 0) { topCard = deck.get(i); deck.remove(i); } else { System.out.println("Fatal Error. Program now exiting."); System.exit(0); } return topCard;
答案 3 :(得分:0)
使用索引
从列表中删除项目deck.remove(i);