import java.io.*;import java.util.*;class Coures{ String id;String name; public Coures(String id,String name){ this.id = id; this.name = name; }}public class Test { public List<Coures> Coureslist = null; public Test(){ Coureslist = new ArrayList<Coures>(); } String s = null; int i = 0; File f = new File("word.txt"); public void Addcoures(){ try { FileReader fr = new FileReader(f); BufferedReader bur = new BufferedReader(fr); while((s=bur.readLine())!=null){ i++; System.out.println("第"+i+"行"+s); String str[] =s.split(";"); Coures co = new Coures(str[0],str[1]); Coureslist.add(co); } System.out.println("有"+Coureslist.size()+"门课程"); bur.close(); fr.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void testIterator(){//迭代器 Iterator<Coures> it = Coureslist.iterator(); System.out.println("有如下课程了"); while(it.hasNext()){ Coures cr = (Coures)it.next(); System.out.println("课程:"+cr.id+":"+cr.name); } } public static void main(String[] args) { new Test().Addcoures(); System.out.println("****************************************************"); new BufferedTest().testIterator(); }}上面是代码 Word.txt文件中的内容如下:1;英语2;语文3;数学运行程序后迭代器输出Coureslist是空的 ,在Addcoures()方法中添加System.out.println("有"+Coureslist.size()+"门课程");语句测试显示Coureslist.size()等于3.请问这是什么原因了,怎样才能让迭代器输出Coureslist内容???
1 回答
已采纳
botao555
TA贡献48条经验 获得超46个赞
public static void main(String[] args) { Test test = new Test(); test.Addcoures(); System.out.println("****************************************************"); test.testIterator(); }
main方法改成这样试试,你调用Addcoures()方法时new了一个Test对象,此时Coureslist里被正常赋值,但是你调用testIterator()时又new了一个Test对象,所以testIterator()里时Coureslist里并没有值。你应该只new一个Test对象,然后用这个对象分别调用Addcoures()和testIterator()就行了
解决了问题的话望采纳!
添加回答
举报
0/150
提交
取消