# LinkedHashMap

11개의 포스트

[JAVA] Collection

스텝 03 - 불변성 BIgDecimal 이나 Wrapper 클래스들도 불변인데 이건 무엇을 의미할까? 특정 클래스의 인스턴스를 만드는 순간부터 이 값을 바꿀 수 없다는 것이다. 비슷하게 우리가 .of 함수를 사용해 만든 List.of()나 Map.of() 같은 모든 것들은 불변 리스트이다. 가변 리스트를 만들고 싶다면 ArrayList를 만들던가 LinkedList 혹은 Vector를 만들어야 한다. 스텝 04 - ArrayList vs LinkedList ArrayList와 Vector의 경우에 사용되는 기본적 데이터 구조는 배열이다. 그러나 LinkedList의 경우에는 이용되는 데이터 구조가 LinkedList이다. 배열의 경우에는 값들이 서로 옆에 존재하여 값을 부르는 것은 굉장히 빠르지만 값을 변경하려면 복잡해진다. 가령 7번재있는 값을 제거한다면 7번째 이후에 존재 하는 값들을 전부 하나씩 왼쪽자리로 가져와야 한다는 것이다. 그러나 LinkedList의

2023년 9월 18일
·
0개의 댓글
·
post-thumbnail

[JAVA] 자료구조 Map Interface

Map Interface : Map은 중복을 허용하지 않는 Key와 중복이 가능한 Value가 각각 쌍을 이루어 저장되는 자료구조이다. Map 자료구조의 특징 중복 : 중복 불가 , index가 순차적 Key로 유일성을 가짐 순서 : 보장 불가 정렬 : 정렬 불가 동기화 (Thread-Safe) : 동기화 불가능, 불안전함 삽입 / 삭제 / 조회 연산이 광장히 빠르지만, 순서를 보장하지 않고, 정렬이 불가하다는 단점을 가지고 있다. 이러한 단점을 보완하기 위해서 자바에서는 HashMap , LinkedHashMap, TreeMap 세 가지의 클래스를 지원한다. HashMap 해시함수를 이용한 Map임 삽입 / 삭제 / 조회 연산의 O(1)을 보장하는 아주 빠른 자료구조 삽입 데이터의 순서를 보장하지 않음 정렬이 불가함 ![](https://velog.velcdn.com/images/glory_95/post/fc31c5e

2023년 7월 10일
·
0개의 댓글
·
post-thumbnail

컬렉션 프레임워크

컬렉션 프레임워크는 간단히 말해, 리스트, 스택, 큐, 트리 등의 에 정렬, 탐색 등의 을 구조화해 놓은 프레임워크이다. 여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음 1. List 인터페이스 리스트와 배열의 차이점 배열 : 저장공간의 크기가 (固定的) 리스트 : 저장공간의 크기가 (可變的) 🛠 List의 주요 메소드 a. add(E element) : 매개변수로 입력된 원소를 마지막에 추가 b. add(int index, E element) : index위치에 입력된 원소 추가 c. addAll(Collection c) : 입력된 컬렉션 전체를 마지막에 추가 d. addAll(int index, Collect

2023년 3월 24일
·
0개의 댓글
·

[Java] Map

기본적으로 Map은 key-value 구조 Map은 인터페이스로 선언되어 있고, 구현체로는 HashMap, TreeMap, LinkedHashMap이 존재 HashMap 특징 bucket은 배열 기반 구조이다. 충분히 큰 데이터를 가지고 있을 경우 충돌시 저장방식을 LinkedList -> TreeNode로 변경 장점 key가 index로 저장되기 때문에 값 검색시 선형적 접근의ArrayList,LinkedList보다 빠름. key를 null 값으로 할 일은 빈번하지 않지만 null key가 가능. 단점 크기가 가득 차서 조정이 필요할 경우 더 큰 해시맵으로 변경. 지연시간 있음. 데이터를 저장하는데 필요한 메모리보다 훨씬 더 많은 메모리를 필요로 함. HashMap에 저장된 key를 추출했을 때, 정렬 X 사용용도 index가 아닌 key를 이용하여 데이터 저장과 접근이 필요할 경우 사용. 데이터의 크기가 어느 정도

2022년 11월 23일
·
0개의 댓글
·
post-thumbnail

JAVA 자료구조 :: Map Interface

📝 Map Interface 키(key) & 값(value)로 구성된 객체 저장 키(key)로 데이터 관리 키(key)는 중복 불가 & 값(value)은 중복 가능 순서 없음 ✓ 주요 사용 클래스들만 설명 💡 메소드 | 메소드 | 설명 | |:------------:|:-----------------:| | int size() | 컬렉션의 길이 반환 | | void clear() | 컬렉션의 모든 데이터를 제거 | | boolean isEmpty()| 컬렉션이 비었는 지 성공 여부 반환 | | boolean containsValue(Object o) | 해당 객체 o를 Value로 하는 객체가 컬렉션에 존재 여부 반환 | | boolean replace(K key, V oldValue, V newValue) | 해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체 | | boolean contains

2022년 7월 26일
·
0개의 댓글
·
post-thumbnail

HashMap vs TreeMap vs LinkedHashMap

HashMap HashMap은 key의 해쉬값을 토대로 배열에 값을 저장합니다. table의 사이즈 - 1과 key의 해쉬값을 & 연산한 인덱스에 value를 저장합니다.(테이블의 크기는 필요시 동적으로 변합니다 초기값 = 16) https://velog.velcdn.com/images/pjh612/post/9deab6c9-c621-4b9a-b087-28b022bfcd90/image.png 해쉬 버킷의 개수가 적다면 충돌이 잦아져 성능상 문제가 발생할 수 있습니다. 데이터의 개수가 특정 임계값에 도달하면 버킷개수를 두 배씩 증가 시키는데 이때마다 Seperating Chaining을 재구성해야하는 문제점이 있습니다. 이러한 문제를 해결하는 방법으로는 데이터가

2022년 7월 10일
·
0개의 댓글
·

LinkedHashMap으로 LRU 구현하기

LinkedHashMap으로 LRU 구현하기 1. Ordering Mode LinkedHashMap은 두 개의 ordering mode를 지원한다. Insertion-Order Map에 저장된 순서대로 엔트리의 순서를 유지하는 방식이다. 기본 생성자를 통해 LHM을 생성했을 경우에 해당한다. Map에 저장한 순서대로 엔트리가 출력되는 것을 볼 수 있다. 아래와 같은 코드를 추가하고 Map을 다시 출력하면 엔트리의 순서가 유지되는 것을 확인할 수 있다. Access-Order Map 엔트리에 접근한 순서대로 순서를 유지하는 방식이다. 맨 처음에 접근한 엔트리가 가장 마지막에 나타나는 방식이다. 가장 최근에 접근한 요소가 가장 마지막 순서로 변경되는 것을 확인할 수 있다. 2. removeEldestEntry

2022년 4월 11일
·
0개의 댓글
·

[JAVA] Map - HashTable, HashMap, LinkedHashMap

Map의 특징 Map은 Java에서 많이 사용하는 자료구조입니다. 기본적으로 Key - Value를 한쌍으로 저장합니다. Key를 통해 Value를 찾고, Key의 중복을 허용하지 않습니다. Interface인 Map의 구현체로는 HashMap, LinkedHashMap, TreeMap, HashTable이 있습니다. Map Signautre를 주로 사용합니다. Map Hash Hash 알고리즘을 사용하였는데, 이 때, 같지 않은 객체 A, B의 대하여 A.hashCode() != B.hashCode() 라면 완전한 해시 함수라고 한다. hashCode의 결과 자료형은 int 형인데 $2^{32}$ 보다 생성 가능한 객체가 많기 때문에, 완전한 해시 함수를 만들기는 불가능하다

2022년 1월 6일
·
0개의 댓글
·
post-thumbnail

[API]post 할 때 body 순서를 맞추기 위해 LinkedHashMap과 Gson을 사용했다!

안녕하세요!(다들 잘 지내셨나요 하하) post 요청을 하려고 HashMap을 이용해 body를 생성하던 중 문제가 생겨(!) LinkedHashMap으로 바꾸었던 썰(!)을 써보려고 합니다~ (최대한 비슷한 코드로 재연해볼게유!) 먼저 처음에 짠 body 생성 코드!(절망) 첫번째는 그냥 습관처럼(!) HashMap을 사용해 body를 만들었어요! 사실 DTO를 이용해서 json으로 파싱해도 되지만 뭔가 이번에 일을 진행한 프로젝트에서 DTO를 사용 안하는 너낌적 너낌.. (쪼랩이여서 뭐가 좋다고 말하긴 잘 모르겠움 뭐가 좋은지는 사람들끼리 박 터지게 싸우더라구여) 고런데 문제가 발생한 것은 결과 순서가 이상한것..? ![](https://images.velog.io/images/

2021년 8월 4일
·
0개의 댓글
·
post-thumbnail

[Java]자료 구조(Map)

1. Map이란? > Collection Framework에서 [Key, Value] 형태로 구성 2. Map과 JSON의 유사점 > 일반적으로 Javascript에서 사용하는 JSON 구조와 유사함 * JSON 자료 예시 * >위의 자료는 Portfolio로 만들었던 웹사이트이다. Server 단에서 View 단으로 데이터를 전달할 때 JSON의 형태로 제공해준다. JSON 형태는 값을 가공하기 편해서 본인은 매우 선호하고 있음 >'w_no'는 Key, '5248'은 Value 3. Map의 조건 > (1) Key값은 중복일 수 없음 (2) Key, Value 중 하나만 존재할 수 없음 (3) Value는 중복 가능 4. Ma

2021년 1월 7일
·
0개의 댓글
·
post-thumbnail

Map 컬렉션 - HashMap, LinkedHashMap, Hashtable, TreeMap

Map 컬렉션이란? Map 컬렉션은 Key와 Value로 구성된 Entry 객체를 저장하는 구조를 가지고 있다. 키는 중복 저장될 수 없고, 값은 중복 저장될 수 있다. 만약 기존 키와 동일한 키로 값을 저장하면, 새로운 값으로 바뀌게된다. Map 컬렉션에는 HashMap, Hashtable, LinkedHashMap, Properties, TreeMap이 있다. 아래는 Map 컬렉션에서 공통으로 사용 가능한 Map 인터페이스의 메소드들이다. |기능|메소드|설명| | :--: | :-----------------------------------: | :------------------------------------------------------------:

2020년 10월 18일
·
0개의 댓글
·