在Java中使用管道时出现意外结果

在Java中使用管道时出现意外结果,java,arraylist,collections,Java,Arraylist,Collections,我有2个应用程序1生成6个1-49之间的随机数(我使用LinkedHashSet,因为数字不能重复): LinkedHashSet hs=新LinkedHashSet(); 做{ int valor=1+(int)(Math.random()*((49-1)); 字符串num=”“+valor; hs.add(num); }而(hs.size()

我有2个应用程序1生成6个1-49之间的随机数(我使用LinkedHashSet,因为数字不能重复):

LinkedHashSet hs=新LinkedHashSet();
做{
int valor=1+(int)(Math.random()*((49-1));
字符串num=”“+valor;
hs.add(num);
}而(hs.size()<6);
字符串[]x=(字符串[])hs.toArray(新字符串[hs.size()]);

对于(int i=0;i在这个循环中,您读取一行,扔掉它,然后读取另一行,该行被添加到列表中:

while(bf.readLine() != null){
    lista.add(Integer.valueOf(bf.readLine()));
}
这与预期6行时看到3行是一致的

这可以通过多种方式重写,例如:

while (true) {
    String line = bf.readLine();
    if (line == null) {
        break;
    }
    lista.add(Integer.valueOf(line));
}

请注意,
bf.readLine()
每次迭代只调用一次。

谢谢,我没有意识到每次都忽略了一行。
while(bf.readLine() != null){
    lista.add(Integer.valueOf(bf.readLine()));
}
while (true) {
    String line = bf.readLine();
    if (line == null) {
        break;
    }
    lista.add(Integer.valueOf(line));
}