JAVA13 append 사용해보기 2022. 4. 6. 비트 플래그 2022. 3. 30. 11. HashMap 사용해보기 HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션이다. Map인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있다. Map은 키와 값으로 구성된 엔트리 객체를 저장하는 구조를 가지고 있는 자료구조이다. 여기서 키와, 값은 모두 객체이다. 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치된다. HashMap은 이름 그대로 해싱(Hasing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어 뛰어난 성능을 보인다. HashMap은 해시 함수를 통해 키와 값이 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수 없고, 삽입되는 순서와 들어있는 위치 또한 관계가 없다. Hash.. 2022. 3. 4. 10. HashSet사용하기, TreeSet구현하기 Set은 주머니의 형태로 되어있다. Set은 객체를 중복해서 저장할 수 없고, 하나의 null값만 저장할 수 있다. 비선형 구조이기에 순서가 없으며, 인덱스도 존재하지 않는다. 그맇기에 값을 추가하거나 삭제할 때 Set 내부에 해당 값이 존재하는지 검색한 뒤 추가, 삭제해야하기에 속도가 List에 비해 느리다. Set인터페이스를 구현한 클래스로는 HashSet과 TreeSet이 있다. HashSet의 경우 정렬을 해주지 않고, TreeSet의 경우 자동정렬을 해준다. 1. HashSet 사용해보기 1-2. LinkedHashSet 사용해보기 중복된 값은 저장되지 않는 모습을 볼 수 있었다. 2. TreeSet 구현하기 TreeSet은 HashSet과 마찬가지로 Set인터페이스를 구현한 클래스이다. 객체를.. 2022. 3. 4. 09. 우선순위 큐 구현하기(에러뜸) 우선순위 큐는 먼저 드러온 데이터는 먼저 나가는 구조를 가진 일반적인 큐와 다르게 데이터의 우선순위를 결정하고, 그 우선순위가 높은 엘리먼트가 먼저 나가는 자료구조이다. 우선순의 큐는 힙을 이용하여 구현하는 것이 일반적이다. 이 힙은 이진트리 구조로 이루어져 있는데 오늘 구현할 우선순위 큐는 이진트리 구조로 이루어져 있지 않은, 단순 배열을 사용한 우선순위 큐이다. 먼저, 우선순위 큐의 기능을 가진 MyPriorityQueue 클래스를 생성해주었다. 가장 이해하기 어려웠던 부분은 27~29번 줄이었는데 아직도 왜 앞으로 인덱스를 이동시키는지 잘 모르겠다. 그래서 이 부분은 좀 더 찾아보기로 하고 우선은 넣을 값들에 대한 정보를 저장하고 있는 Human클래스를 만들었다. implements는 상속으로 ex.. 2022. 3. 2. 08. 큐, 선형 큐 구현하기 1. QUEUE Queue란, 데이터를 일시적으로 쌓아두기 휘안 자료구조로 스택과 다르게 FIFO(First In First Out)의 형태를 가진다. 뜻 그대로 먼저 들어온 데이터가 가장 먼저 나가는 구조이다. 먼저, 큐의 기능들을 구현하는MyQueue 클래스를 생성해주었다. 다음으로 메인 클래스를 생성하여 실행시켜 보았다. 실행시켜보니 마지막으로 push한 배열의 크기를 벗어나는 6번째로 들어온 값인 60이 입력되지 않은 모습과, pop()이 잘 작동하여 에러코드인 -1을 출력하는 모습을 볼 수 있었다. 그리고 push시킨 값들이 pop되어 빠져나가는 모습과 앞선 배열의 데이터가 비자 뒤에 저장되어 있던 값들이 앞의 인덱스로 당겨 저장되는 모습을 볼 수 있었다. 2. Circle Queue 원형 큐는.. 2022. 2. 28. 이전 1 2 3 다음