NoSuchElementException

本文介绍了一个关于Java NoSuchElementException异常的问题,通过一个具体的示例展示了如何在迭代过程中出现此类异常,并提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在之前下项目的时候遇到这个.NoSuchElementException异常,当时我写到一个大类的结尾。但是编译器。从未报错。然而在运行的时候出现了这样的异常,非常头疼 ,一到运行时候就报异常,我就上网搜索了一下,才明白,这是我的刚开始写的代码,下面写出这个错误的例子及分析,希望能及时的帮助和我同样犯了小错误的菜鸟!

package com.PETProgram;
import java.util.Scanner;
import java.util.Iterator;
import java.util.ArrayList;

import static java.lang.System.out;
public class PetSystemLogin {
 public static Scanner input = new Scanner(System.in);
      
       Pet p1 = new Pet("花花");
 public static void main(String[] args) {
      out.println("宠物商店正在启动");
      out.println("Wonder land醒来,所有宠物从oracle中醒来");
      out.println("*********************************");
      out.println("宠物商店正在启动");
     ArrayList <Pet>list = new ArrayList<Pet>();
      list.add(new Pet("花花"));
      list.add(new Pet("贝贝"));
      list.add(new Pet("成成"));
      list.add(new Pet("露露"));
      list.add(new Pet("老虎"));
      list.add(new Pet("老虎"));
      list.add(new Pet("1"));
      list.add(new Pet("shizi"));
      Iterator<Pet> it = list.iterator();
      while(it.hasNext())
      {   int i = 0;
     
      for(;i<list.size();i++)
       {
       System.out.println("第"+(i+1)+"个"+"宠物,"+"名字叫"+((Pet)it.next()).name);
      
       }
      }
   
 
      out.println("********************************");
      out.println("所有宠物主人从oracle中醒来");
      out.println("********************************");
      ArrayList<PetOwner> list1 = new ArrayList<PetOwner>();
        PetOwner pet = new PetOwner("小明");
        list1.add(pet);
        list1.add(new PetOwner("小强"));
        Iterator<PetOwner> it1 = list1.iterator();
        while(it1.hasNext())
        {   int i = 0;
         for(;i<list1.size();i++)
         {
         System.out.println("第"+(i+1)+"个"+"宠物主人,"+"名字叫"+((PetOwner)it1.next()).name);
         }
       }
        out.print("所有宠物商店从oracle中醒来");
        out.print("************************************\n");
        ArrayList<PetStore> list2 = new ArrayList<PetStore>();
        PetStore pets = new PetStore("北京西苑");
        list2.add(pets);
        list2.add(new PetStore("重庆观音桥"));
        Iterator<PetStore> it2 = list2.iterator();
        while(it2.hasNext())//错误在这里,原来的迭代的元素还是写在还在迭代上面的元素,其实应该迭代现在是it2
        {
          out.println("我的名字叫:"+(it2.next()).Storename);
        }
      
        out.println("请选择登陆模式,输入1为宠物主人登陆,输入2为宠物商店登陆");
        int choice = input.nextInt();
        if(choice ==1)
        {
         pet.OwnerLogin();
         pet.isAccount();
        }else if(choice ==2)
        {
         pets.StoreLogin();
        }else if(choice==0)
        {
         System.exit(0);
        }
       
 }
   
 
}
 
 元素迭代错误的错误造成的,其实
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值