我已经使用嵌套地图来存储值。我需要以特定的格式打印它。以特定格式显示嵌套地图的内容
输入数据:
University Department DeptHead
A X Tim
B X Jim
C X John
A Y Alex
C Z Peter
D Z Dan
B Z Ashley
B Y Peter
D Y Maria
代码:
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class testNested {
public static void printMap(Map<String, String> map,Object key)
{
Iterator it = map.entrySet().iterator();
// System.out.print(key.toString());
while(it.hasNext())
{
Map.Entry pairs = (Map.Entry)it.next();
System.out.print(key.toString() + " "+ pairs.getKey() + " " + pairs.getValue());
}
System.out.println();
}
public static void main(String arg[])
{
Map<String,Map<String,String>> map= new HashMap<String,Map<String, String>>();
Map<String,String>A=new HashMap<String, String>();
Map<String,String>B=new HashMap<String, String>();
Map<String,String>C=new HashMap<String, String>();
Map<String,String>D=new HashMap<String, String>();
A.put("X", "Tim");
A.put("Y", "Alex");
B.put("X", "Jim");
B.put("Z", "Ashley");
B.put("Y", "Peter");
C.put("X", "John");
C.put("Z", "Peter");
D.put("Y", "Maria");
D.put("Z", "Dan");
map.put("A",A);
map.put("B", B);
map.put("C", C);
map.put("D", D);
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
//System.out.println(pairs.getKey());
printMap((Map<String, String>)pairs.getValue(),pairs.getKey());
}
}
}
输出:
D Y Maria Z Dan
A Y Alex X Tim
B Y Peter X Jim Z Ashley
C X John Z Peter
我需要在下面的格式(预期输出)以显示输出:
University X Y Z
A Tim Alex -
B Jim Peter Ashley
C John - Peter
D - Maria Dan
使用HashMap
这样做的最佳方法是什么?
没有HashMap
这个问题的最佳方法是什么?
收集地图将帮助我解决随机顺序格式,但我不确定如何收集地图将有所帮助,因为我需要显示各个大学(A,B,C,D)的deptHead - 沿Y轴和课程(X, Y,Z)沿X轴。你能告诉我如何显示上述数据吗? –
集合是一个非常抽象的术语,可能是很多事情。我建议寻找Java Collections API来查看使用它们的不同方式,关注List和ArrayList,因为我认为这将有所帮助。其余的似乎只是格式化;我真的会试图保持数据和格式分开。你可以通过引入更多可以处理这些方面的对象来做到这一点。祝你好运 – nckbrz