以下是我遇到问题的完整问题:
对没有重复项的名称进行排序:编写一个程序,从所有十个文件中读取名称,对所有名称进行排序(男孩和女孩名称一起排除,重复删除),并将排序后的名称存储在一个文件中十每行(只有名字,没有等级)。
文件显示婴儿姓名及其排名。示例文件设置如下:
1 Lewis 12,000 Sarah 50,000 //rank, boy name, amountBoy, girl name, amountGirl
第一步是从十个文件中读取。如果不为每个文件创建新的Scanner
或BufferedReader
,我该怎么做?请指出我正确的方向。我不是要求一个完整的解决方案。
答案 0 :(得分:0)
阅读其中一个文件并关闭BufferedReader
后,您可以通过将其值设置为new BufferedReader()
来使用同一个对象。
首先,您需要将所有名称保存到ArrayList
。下一步是将名称复制到第二个ArrayList
并检查每个名称是否重复。
例如:
import java.util.ArrayList;
import java.util.List;
public List<String> sortNames(List<String> names){
List<String> returnValues = new ArrayList<String>();
boolean exists = false;
for(String name : names){
sub: for(String nm : returnValues){
if(name.equalsIgnoreCase(nm)){
exists = true;
break sub;
}
}
if(!exists){
returnValues.add(name);
}else{
exists = false;
continue;
}
}
return returnValues;
}