Java 使用ArrayList的越界异常
我不知道为什么我会得到一个出界的例外,请有人帮助,这真的很烦人我,因为我真的想知道发生了什么 公共类忠诚卡名单 { 私人ArrayList忠诚者Java 使用ArrayList的越界异常,java,indexoutofboundsexception,Java,Indexoutofboundsexception,我不知道为什么我会得到一个出界的例外,请有人帮助,这真的很烦人我,因为我真的想知道发生了什么 公共类忠诚卡名单 { 私人ArrayList忠诚者 /** * */ public LoyaltyCardList() { loyaltyCards = new ArrayList <LoyaltyCard> (); } /** * */ public void addLoyaltyCard(LoyaltyCard newLoyaltyCard) { loyal
/**
*
*/
public LoyaltyCardList()
{
loyaltyCards = new ArrayList <LoyaltyCard> ();
}
/**
*
*/
public void addLoyaltyCard(LoyaltyCard newLoyaltyCard)
{
loyaltyCards.add(newLoyaltyCard);
}
public void getAllLoyaltyCards()
{
int index = 0;
while(index <= getNumberOfLoyaltyCards())
{
loyaltyCards.get(index).printCustomerDetails();
index++;
}
}
public void getLoyaltyCard(int LoyaltyCardEntry)
{
if(LoyaltyCardEntry < 0)
{
System.out.println("Negative Entry: " +LoyaltyCardEntry);
}
else if(LoyaltyCardEntry < getNumberOfLoyaltyCards())
{
loyaltyCards.get(LoyaltyCardEntry).printCustomerDetails();
}
else
{
System.out.println("No Such Entry:" + LoyaltyCardEntry);
}
}
public int getNumberOfLoyaltyCards()
{
return loyaltyCards.size();
}
/**
*
*/
公众忠诚度CardList()
{
忠诚卡=新ArrayList();
}
/**
*
*/
公共无效添加忠诚卡(忠诚卡新忠诚卡)
{
忠诚卡。添加(新忠诚卡);
}
公开作废所有忠诚卡()
{
int指数=0;
而(指数变化)
System.out.println(LoyaltyCards);
到
此时,您正在尝试打印列表本身。您打印的是LoyaltyCards类,而不是loyaltyCard
实例
for ( LoyaltyCard loyaltyCard : LoyaltyCards)
{
System.out.println(loyaltyCard);
}
您还应该确保在您的LoyaltyCard类中有一个适当的toString()重写,否则它可能不会转换为所需的格式您的代码不会返回任何内容。Java代码区分大小写…LoyaltyCards!=LoyaltyCards
这对toString()有效吗:@override public String toString(){return LoyaltyCards;}这取决于您希望toString返回的内容,通常是字段,例如,return“[”+field1“],[“+field2+”]”。如果您使用的是eclipse,则可以转到源代码生成toString()我刚刚意识到,我不需要获得列表的大小,就可以从中打印任何内容,而且我也不太确定toString是如何工作的。
for ( LoyaltyCard loyaltyCard : LoyaltyCards)
{
System.out.println(loyaltyCard);
}