我需要帮助创建一个 ArrayList 并向它们添加一些整数。本质上,我有一个纸牌游戏,它可以拉出卡片然后保存 ID (BCID)。我想将这个拉取的 ID 添加到一个 ArrayList 中,这样我就可以避免两次拉取同一张卡。我的设置如下,但我不断重复。我知道卡片正确拉动,因为它显示一切正常 - 不幸的是,只是重复卡片。
您能提供的任何帮助都会很棒!我已尽力将相关部分包括在内。如果您需要更多信息,请告诉我。
public static Integer bcid1, bcid2, bcid3, bcid4, bcid5, bcdcid;
public static List<Integer> usedCards = new ArrayList<Integer>();
在下面的示例中,它应该检测重复然后初始化序列以绘制不同的卡片。
public static void setIDs()
{
try
{
bcid1 = Integer.parseInt(bc1);
usedCards.add(bcid1);
}
catch(NumberFormatException nfe)
{ }
try
{
bcid2 = Integer.parseInt(bc2);
if (usedCards.contains(bcid2))
{
try
{
blueCard2(ctx);
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
usedCards.add(bcid2);
}
}
catch(NumberFormatException nfe)
{ }
try
{
bcid3 = Integer.parseInt(bc3);
if (usedCards.contains(bcid3))
{
try
{
blueCard3(ctx);
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
usedCards.add(bcid3);
}
}
catch(NumberFormatException nfe)
{ }
try
{
bcid4 = Integer.parseInt(bc4);
if (usedCards.contains(bcid4))
{
try
{
blueCard4(ctx);
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
usedCards.add(bcid4);
}
}
catch(NumberFormatException nfe)
{ }
try
{
bcid5 = Integer.parseInt(bc5);
if (usedCards.contains(bcid5))
{
try
{
blueCard5(ctx);
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
usedCards.add(bcid5);
}
}
catch(NumberFormatException nfe)
{ }
}