본문 바로가기

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());
}

 

반응형