본문 바로가기

Java/Java 알고리즘 인프런

자료구조 출력

ArrayList와 같은 자료구조와 달리 Map은 순서대로 출력이 불가능하다.

 

하지만 LinkedHashMap의 경우 순서대로 출력이 가능한데, 이와 같은 자료구조에서 출력을 하기 위한 방법

 

 public static void print(Map<String, String> map) {
    Set<String> set = map.keySet();
    Iterator<String> iter = set.iterator();

    while (iter.hasNext()) {
        String key = ((String)iter.next());
        String value = map.get(key);

        System.out.println("key : " + key + ", value : " + value);
    }
}

 

LinkedHashMap에서 value값만큼 Key 출력

 

Set<String> set = LinkedHashMap.keySet();
        Iterator<String> iter = set.iterator();
        while (iter.hasNext()) {
            String key = ((String) iter.next());
            for (int k = 0; k < LinkedHashMap.get(key); k++) {
                System.out.print(key + " ");
            }
        }

 

Values만 출력

Collection <Integer> arr =T.solution(list, m).values();
        Iterator lt=arr.iterator();
        while(lt.hasNext()) {
            int x=((int) lt.next());
            System.out.print(x+" ");
        }

 

Key만 출력

Set <String> set= T.solution(list,m).keySet();
        Iterator lt1 = set.iterator();
        while(lt1.hasNext()) {
            String key = ((String) lt1.next());
            for(int k=0;k<T.solution(list, m).get(key);k++) {
                System.out.print(key+" ");
            }
        }

 

key=value로 출력

Set <Entry <String, Integer>> entry  = T.solution(list, m).entrySet();
        Iterator lt2 = entry.iterator();
        while(lt2.hasNext()) {
            Entry ent = ((Entry)lt2.next());
            System.out.print(ent+" ");
        }

 

key와 value 출력

Set <String> set= T.solution(list,m).keySet();
Iterator<String> lt2 = set.iterator();
while(lt2.hasNext()) {
    String key = ((String) lt2.next());
    int value = T.solution(list, m).get(key);
    System.out.print(key+": "+value);
}

 

+) Map.Entry 이용

for (Map.Entry entry : T.solution(list, m).entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}