我必须使用HashMap从txt文件中打印出前5项内容。下面是文本文件中内容的示例。
A01网络应用程序
A02约定
A03嵌入
A04印象
A05影响器
A06提及
A07微博
A08有机
A09达达
A10社会图
A11用户生成的内容
A12代销商营销
A13反弹率
A14行动呼吁
A15点击率
等等..。
以下是我到目前为止所拥有的:
final int assumedLineLength = 16;
File file = new File("src/hw7p1/Acronyms.txt");
try {
Scanner scan = new Scanner(file);
HashMap<String, String> hashMap = new HashMap<String, String>((int)(file.length() / assumedLineLength) * 2);
while(scan.hasNextLine()) {
String[] columns = scan.nextLine().split(" ");
hashMap.put(columns[0], columns[1]);
}
for (String key : hashMap.keySet()) {
System.out.println(key +" " + hashMap.get(key));}
} catch (IOException e) {
e.printStackTrace();
}
}}这就是我的输出所得到的:
A87 Big
A88 Data
A01 Web
A89 Database
A02 Engagement
A03 Embedding
A04 Impressions
A05 Influencer
A06 Mention
A07 Microblogging
A08 Organic
A09 Reach
A90 Data
A91 Data
A92 Relational
A93 Hybrid
A94 IDE
A95 Native
A96 NFC
A97 Responsive
A10 Social
A98 SDK
A11 User-generated
A99 Content由于某种原因,当它看起来像上面的例子时,它正在混合一些输出。任何帮助都将不胜感激。谢谢
发布于 2017-11-14 22:14:50
尝试:
Map<String, String> hashMap = new LinkedHashMap<String, String>(
(int) (file.length() / assumedLineLength) * 2);发布于 2017-11-14 22:07:39
我建议使用LinkedHashMap,因为它保留了输入的顺序。
LinkedHashMap<String, String> hashMap = new LinkedHashMap<String, String>((int)(file.length() / assumedLineLength) * 2);https://stackoverflow.com/questions/47295968
复制相似问题