for循环输出为何从第二个元素开始,加入System.out.println后恢复正常

striveforit 2011-03-24 12:35:36
很奇怪,
public class Sort1 {
static int t=544;
public static void main (String[] args) throws IOException {
int t=5;
TxtInput input=new TxtInput("e:/bishe/B.txt");
double[][] aaa=new double[t][t];
input.setSource(aaa);
aaa=input.get_source();
double max=0;
// locateI记录位置
int locateI=0;
for(int i=0;i<t;i++){
if(max<aaa[i][i]){max=aaa[i][i];locateI=i;}
}
System.out.println(max+" "+locateI);

TxtInput input2=new TxtInput("e:/bishe/X.txt");
double[][] a2=new double[t][t];
input2.setSource(a2);
a2=input2.get_source();
for(int i=0;i<t;i++){
// if(a2[i][locateI])
System.out.print(a2[i][locateI]+" ");
}
String filename = "E:\\bishe\\karate.gml";
InitialGraph ing = new InitialGraph(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,请问大侠是什么原因呢
...全文
233 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
striveforit 2011-04-05
  • 打赏
  • 举报
回复
TxtInput是指读取文本文件的数据,存在内存里面。
我怀疑是不是因为有I/O缓冲区之类的有关,还是上面原因,才导致读取文件后,遍历文件才从第二个元素读起。
而System.out.println();是不是因为将上面所说的缓冲区清空了,所以遍历就恢复正常了

不知道有没有这一说法。之前我用C++就有类似问题
striveforit 2011-04-05
  • 打赏
  • 举报
回复
不好意思,部分蓝色是指下面这一段:
int t=5;
TxtInput input=new TxtInput("e:/bishe/B.txt");
double[][] aaa=new double[t][t];
input.setSource(aaa);
aaa=input.get_source();
double max=0;
// locateI记录位置
int locateI=0;
for(int i=0;i<t;i++){
if(max<aaa[i][i]){max=aaa[i][i];locateI=i;}
}
System.out.println(max+" "+locateI);

TxtInput input2=new TxtInput("e:/bishe/X.txt");
double[][] a2=new double[t][t];
input2.setSource(a2);
a2=input2.get_source();
for(int i=0;i<t;i++){
// if(a2[i][locateI])
System.out.print(a2[i][locateI]+" ");
}


TxtInput是我写的另一个类。

如果将蓝色的,即上面一段略去,那样就能够正常输出。否则,就要在输出前加上System.out.println();才能够从第一个元素开始遍历
zqfddqr 2011-03-26
  • 打赏
  • 举报
回复
TxtInput是什么啊 你上一句没换行?
1惯親手 2011-03-24
  • 打赏
  • 举报
回复
while(itor.hasNext())
{
Entry<Integer, Vertex> e = itor.next();//从第二个元素开始了?
System.out.println(e.getKey());
}

应该是你用的next方法的缘故。话说 没看到你的蓝色部分!

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧