在之前下项目的时候遇到这个.NoSuchElementException异常,当时我写到一个大类的结尾。但是编译器。从未报错。然而在运行的时候出现了这样的异常,非常头疼 ,一到运行时候就报异常,我就上网搜索了一下,才明白,这是我的刚开始写的代码,下面写出这个错误的例子及分析,希望能及时的帮助和我同样犯了小错误的菜鸟!
package com.PETProgram;
import java.util.Scanner;
import java.util.Iterator;
import java.util.ArrayList;
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);
}
}
}
元素迭代错误的错误造成的,其实
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);
}
}
}
元素迭代错误的错误造成的,其实