중첩 된 맵을 사용하여 값을 저장했습니다. 특정 형식으로 인쇄해야합니다.중첩 된 맵의 내용을 특정 형식으로 표시
입력 데이터 :
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());
}
}
}
출력 : I 포맷 아래 (예상 출력)의 출력을 표시해야
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를 -ve Y 축과 코스 (X, Y, Z)를 X 축을 따라 이동시킵니다. 위에서 설명한대로 데이터를 표시하는 방법을 알려주십시오. –
컬렉션은 매우 추상적 인 용어이며 많은 것들이 될 수 있습니다.필자는 Java Collections API를 사용하여 여러 가지 방법을 사용하여 List 및 ArrayList에 초점을 맞추는 것이 도움이 될 것이라고 생각합니다. 나머지는 형식화 된 것처럼 보입니다. 나는 정말로 데이터와 포맷을 분리하려고 노력할 것입니다. 이러한 측면을 처리 할 수있는 더 많은 객체를 도입하여이를 수행 할 수 있습니다. 행운을 빕니다 – nckbrz