问题描述
很奇怪,publicclassSort1{staticintt=544;publicstaticvoidmain(String[]args)throwsIOException{intt=5;TxtInputinput=newTxtInput("e:/bishe/B.txt");double[][]aaa=newdouble[t][t];input.setSource(aaa);aaa=input.get_source();doublemax=0;//locateI记录位置intlocateI=0;for(inti=0;i<t;i++){if(max<aaa[i][i]){max=aaa[i][i];locateI=i;}}System.out.println(max+""+locateI);TxtInputinput2=newTxtInput("e:/bishe/X.txt");double[][]a2=newdouble[t][t];input2.setSource(a2);a2=input2.get_source();for(inti=0;i<t;i++){//if(a2[i][locateI])System.out.print(a2[i][locateI]+"");}Stringfilename="E:\bishe\karate.gml";InitialGraphing=newInitialGraph(filename);ing.initial();Iterator<Entry<Integer,Vertex>>itor=ing.g.getVertex().entrySet().iterator();System.out.println();//蓝色部分加上后,要正常输出就要加这句while(itor.hasNext()){Entry<Integer,Vertex>e=itor.next();//从第二个元素开始了?System.out.println(e.getKey());}}}
若把蓝色部分除去,itor正常从第一个元素输出。不过蓝色部分加上后,要正常输出就得在输出前加句System.out.println,请问大侠是什么原因呢
解决方案
解决方案二:
while(itor.hasNext()){Entry<Integer,Vertex>e=itor.next();//从第二个元素开始了?System.out.println(e.getKey());}应该是你用的next方法的缘故。话说没看到你的蓝色部分!
解决方案三:
TxtInput是什么啊你上一句没换行?
解决方案四:
不好意思,部分蓝色是指下面这一段:intt=5;TxtInputinput=newTxtInput("e:/bishe/B.txt");double[][]aaa=newdouble[t][t];input.setSource(aaa);aaa=input.get_source();doublemax=0;//locateI记录位置intlocateI=0;for(inti=0;i<t;i++){if(max<aaa[i][i]){max=aaa[i][i];locateI=i;}}System.out.println(max+""+locateI);TxtInputinput2=newTxtInput("e:/bishe/X.txt");double[][]a2=newdouble[t][t];input2.setSource(a2);a2=input2.get_source();for(inti=0;i<t;i++){//if(a2[i][locateI])System.out.print(a2[i][locateI]+"");}TxtInput是我写的另一个类。如果将蓝色的,即上面一段略去,那样就能够正常输出。否则,就要在输出前加上System.out.println();才能够从第一个元素开始遍历
解决方案五:
TxtInput是指读取文本文件的数据,存在内存里面。我怀疑是不是因为有I/O缓冲区之类的有关,还是上面原因,才导致读取文件后,遍历文件才从第二个元素读起。而System.out.println();是不是因为将上面所说的缓冲区清空了,所以遍历就恢复正常了不知道有没有这一说法。之前我用C++就有类似问题