본문 바로가기
프로그래밍 공부/Java

[Lesson] list만 순서가 있다고? Map도 순서가 있다!

by Luna_lua 2023. 1. 10.
반응형

데이터를 하나의 변수로 담기 위해 우리는 배열 그리고 리스트를 사용해 왔다.

그리고 순서가 없는 Set, key, value로 이루어져있는 Map이 있다.

key와 value로 이루어져 있는 Map에 대해 이야기 해보려 한다.

 

요새 많이 사용하는것이 HashMap이다. 1:1 쌍으로 저장 관리를 하며, key를 통해 value를 쉽게 가져오고,

key는 중복이 안되기 때문이다. (JSON도 비슷한 형식)

그래서 데이터를 이러한 형식으로 사용하려 하지만 key는 순서가 없기 때문에 순서대로 연산을 하고 싶을때

어떻게 해야할지 고민이다.

 

이때 사용하는것이 LinkedHashMap이다. 사용법은 HashMap과 동일해서 기본적인 메소드 기능 설명은 생략한다.

입력과 출력의 순서가 다르다는것을 보여주는 예시이다.

package test;

import java.util.*;
import java.util.function.Consumer;

import javax.swing.plaf.synth.SynthScrollBarUI;

public class Test {
	public static void main(String[] args) {
		System.out.println("HashMap");
		Map<Integer, String> map = new HashMap<>();
		map.put(3 ,"3번째");
		map.put(1 ,"1번째");
		map.put(5 ,"5번째");
		map.put(2 ,"2번째");
		map.put(20 ,"20번째");

		System.out.println(map);

		System.out.println("=================================");
		System.out.println("LinkedHashMap");

		Map<Integer,String> linkedHashMap = new LinkedHashMap<>();
		linkedHashMap.put(3 ,"3번째");
		linkedHashMap.put(1 ,"1번째");
		linkedHashMap.put(5 ,"5번째");
		linkedHashMap.put(2 ,"2번째");
		linkedHashMap.put(20 ,"20번째");

		System.out.println(linkedHashMap);
	}
}

출력문은 아래와 같다

 

이렇게 Map을 list처럼 순서가 있는 자료구조로 사용하고 싶다면 LinkedHashMap을 이용해 보자!

반응형