我正在尝试从文本文件中读取以下数据:
3.8 Lisa
3.6 John
3.9 Susan
3.7 Kathy
3.4 Jason
3.9 David
3.4 Jack
3.9 Andy
3.8 Fox
3.9 Minnie
2.7 Goofy
3.9 Doc
3.4 Danny
然后我正在整理和打印它。但是我的输出是删除重复项目,我需要显示完整列表。
输出:
run:
2.7 Goofy
3.4 Danny
3.6 John
3.7 Kathy
3.8 Fox
3.9 Doc
BUILD SUCCESSFUL (total time: 0 seconds)
这是我的代码:
package highestgpa;
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new FileReader("StudentGPA.txt"));
Map<Double, String> items = new TreeMap<Double, String>();
String line;
while (null != (line = br.readLine()))
{
String[] line_parts = line.split(" ");
if (line_parts.length > 1)
{
StringBuilder desc = new StringBuilder(line_parts[1]);
for (int i = 2; i < line_parts.length; i++)
{
desc.append(line_parts[i]);
}
items.put(new Double (line_parts[0]), desc.toString());
}
}
for (Double key: items.keySet())
{
System.out.println(key + " " + items.get(key));
}
}
}
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
您使用GPA作为密钥。当您阅读具有相同GPA并将其添加到地图的人时,它会使用相同的GPA密钥替换上一个条目。
相反,请尝试使用名称作为键。
Map<String, Double> items = new TreeMap<String, Double>();
...
items.put( desc.toString(),new Double (line_parts[0]));
...
for (String key: items.keySet())
{
System.out.println(key + " " + items.get(key));
}