【发布时间】:2016-06-16 12:46:04
【问题描述】:
我有一个文本文件,它看起来像这样:
gui awtui swingui
swingui runner extensions
textui runner framework
awtui runner
runner framework
extensions framework
它们由标签分隔
我使用哈希映射存储这些,其中键是第一行,值是该行中的其余字符,例如 键 = gui 值 = atwui swingui
因此,我使用一键多值哈希映射来实现这一点,这就是我目前所做的。
import java.util.*;
import java.io.*;
public class PackageAnalyser {
public static void main(String[] args) throws IOException{
HashMap<String, List<String>> dependencies = new HashMap<String, List<String>>();
List<String> pack = new ArrayList<String>();
try (Scanner in = new Scanner(new File(args[0]))){
//String line = null;
while ((in.hasNext() )){
String [] packs = in.nextLine().split("\t");
for (int i = 0; i < packs.length; i++){
pack.add(packs[i]);
Arrays.sort(packs);
}
dependencies.put(packs[0], pack);
}
}catch (IOException ex){
System.err.println(ex);
} finally {
}System.out.println(dependencies);
}
}
在多次尝试修改代码后,这是我运行时的输出样子
`{awtui = [awtui, swingui, runner, swingui, runner, textui, runner, framework, framework], framework=[awtui, swingui, runner, swingui, textui, runner, framework, framework], extensions=[awtui, swingui, runner, swingui, runner, textui, runner, framework, framework]}
我想要的输出是:
{gui = [awtui, swingui], swingui = [runner, extensions], textui =[runner, framework], awtui = [runner], runner = [framework], extensions = [framework]}
如图所示,我正在从文本文件中读取,并且我想显示为上面的输出所示。请帮忙。
【问题讨论】: