전체 글

어려워 보이는 프로그래밍 언어를 쉽게 정복하는 블로그
자료구조 & 알고리즘/선형 자료구조

[자료 구조] 연결리스트(LinkedList) in java

연결리스트의 구조와 특징 연결리스트(LinkedList)란? Collection Framwork내에 있는 List 컬렉션 중 하나(List의 일부). List의 종류 > ArrayList(리스트로 생성되나 성격은 array와 더 비슷하다. 동적배열이라고 생각하면 쉬움), LinkedList List는 객체 자체를 저장하지 않고 객체의 번지(메모리 주소)를 저장한다. 그러나 이러한 객체의 번지는 array와 ArrayList와 달리 연속적이지 않다. 또한 맨 처음 부분인 head와 맨 끝부분 tail으로 구분 된다. 위의 그림은 정확하진 않겠지만 데이터들이 Array, ArrayList와 달리연속적으로 저장되지 않는다는 것을 알려주고 싶어 그림을 첨부했다. + LinkedList 컬렉션은 이중 연결 리스트..

자료구조 & 알고리즘

[자료 구조] 해시맵(HashMap) in java

해시맵의 구조와 특징 가볍게 생각하면 해시맵은 python에서 dictionary와 같이 key와 value 값을 매핑된 상태로 저장할 수 있는 자료구조라고 생각할 수 있습니다. 그러나 가볍게 대충 보면 안되겠죠? 우선 기본적으로 자바에서 해시맵(HashMap)은 인터페이스 Map을 상속받고, Map은 key와 value으로 구성된 객체를 저장하는 구조를 가지고 있습니다. 따라서 상속받은 해시맵도 Map의 성질을 그대로 가져 key와 value값으로 구성된 객체를 저장하기 편한 자료구조입니다. 이때 null key와 null value를 허용한다고 합니다. 아주 조금 더 깊게 생각해봅시다. 이름에 있는 hash는 보통 hash function(해쉬함수)와 연관이 있다고 생각하시면 되는데요! key값을 해..

자료구조 & 알고리즘/선형 자료구조

[자료 구조] 배열 (Array) in java

배열의 구조와 특징 배열(Array)이란? 배열 크기가 고정적인 배열이다. 항상 크기를 정해줘야 인덱스 값으로 접근하여 할당 연산자로 데이터값을 저장할 수 있다. 정적인 배열의 장점으로는 사이즈가 늘 일정해서 사이즈 값은 상수고 인덱스로 접근하기가 편하다. 또한 데이터를 저장할때는 반드시 모두 같은 타입이어야 배열에 저장이 가능하다. -> 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것, 같은 타입의 여러 변수를 하나하나 저장해서 쓰는 것보다 한곳에 모아두고 필요한 것들만 사용하기 용이하기 때문에 위의 그림은 int[] arr = new int[3]; 으로 생성된 배열의 구조와 인덱스를 보여주고 있는 그림이다. 개념은 쉽지만 매번 사용할때마다 헷갈리고 다시 구글링을 하게 되서 배열의 간단한 사용을 코..

three von
LangEASY : 프로그래밍 언어를 쉽게 정복하는 공간