Java 要设置的读线

Java 要设置的读线,java,set,readline,Java,Set,Readline,编辑: 导入java.io.BufferedReader; 导入java.io.IOException; 导入java.util.HashSet; 导入java.util.Set; 公共y类{ Set setA=新的HashSet(); Set getSetA(BufferedReader br)引发IOException{ 弦线; 而((line=br.readLine())!=null){ setA.add(行); } br.close(); 迭代器iter=setA.Iterator()

编辑:

导入java.io.BufferedReader;
导入java.io.IOException;
导入java.util.HashSet;
导入java.util.Set;
公共y类{
Set setA=新的HashSet();
Set getSetA(BufferedReader br)引发IOException{
弦线;
而((line=br.readLine())!=null){
setA.add(行);
} 
br.close();
迭代器iter=setA.Iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
返回刚毛;
}
}

我尝试将文件的每一行读入集合的元素。但似乎只有n行被添加到集合中。println只打印出全文中的n行。我的代码有什么问题?

用一段时间替换if

import java.io.BufferedReader;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

public class y {

    Set<String> setA = new HashSet<String>();

    Set<String> getSetA(BufferedReader br) throws IOException {
        String line;
        while ((line = br.readLine()) != null) {
            setA.add(line);

        } 
        br.close();
            Iterator<String> iter = setA.iterator();    
            while (iter.hasNext()) {
            System.out.println(iter.next());
            }
        return setA;

    }
}
后来

while ((line = br.readLine()) != null) {
   setA.add(line);
}
Iterator iter=setA.Iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}

将if/else替换为需要调试的选项。每次添加到集合时打印
,以确定有多少字符串添加到集合中。否,它没有。您应该将迭代器声明(和初始化)移到while的上方,而在while的内部,您应该只对while(uter.hasNext())…答案进行编辑,以解决这个问题
Iterator<String> iter = setA.iterator();    
while (iter.hasNext()) {
   System.out.println(iter.next());
}