본문 바로가기

개발57

LinkedHashMap 이론 및 코드 정리 •가장 큰 특징은 자료가 입력된 순서를 기억한다는 것입니다. •LinkedHashMap은 HashMap을 확장합니다. HashMap의 모든 기능을 사용하되, •Doubly-Linked List를 내부에 유지함으로써 입력된 자료의 순서를 보관한다. •물론 자료의 크기가 커지면 메모리 사용량이 늘어나겠지만, 순서를 간편하게 유지하기 위해서 이만한게 없다. Doubly-Linked List •노드와 노드가 서로 연결되어 있다는 점입니다 •장점 : 양방향 탐색의 가장 큰 장점은 특정 인덱스 위치의 엘리먼트를 가져올 때와 반복자를 이용 해서 탐색할 때 드러납니다. •단점 : 우선 이전 노드를 지정하기 위한 변수를 하나 더 사용해야 합니다. 메모리를 더 많이 사용한다는 의미입니다. 또 구현이 조금 더 복잡해진다는 .. 2021. 5. 26.
Hashtable 이론정리 Hashtable 현재의 Hashtable 클래스는 HashMap 클래스와 마찬가지로 Map 인터페이스를 상속받습니다. 따라서 Hashtable 클래스에서 사용할 수 있는 메소드는 HashMap 클래스에서 사용할 수 있는 메소드와 거의 같습니다. 해시 테이블이 빠른 검색속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기 때문이다. 해시 테이블은 각각의 Key값에 해시함수를 적용해 배열의 고유한 index를 생성하고, 이 index를 활용해 값을 저장하거나 검색하게 된다. 여기서 실제 값이 저장되는 장소를 버킷 또는 슬롯이라고 한다. 각각의 Key값은 해시함수에 의해 고유한 index를 가지게 되어 바로 접근할 수 있으므로 평균 O(1)의 시간복잡도로 데이터를 조회할 수 있다 충돌을.. 2021. 5. 26.
[Map] HashMap 이론 및 코드 HashMap HashMap은 키(Key) , 값(Value) 을 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스들을 구현하는 데 사용 쉽게 말해 key, value 값으로 저장하는 List 형태의 조상이라고 생각 하시면 됩니다. 해싱(hashing)이란 검색 방법을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보여줍니다. 동기화가 포함되지 않으므로, 멀티 스레드 환경에서의 구현이 아니라면 HashTable에 비해 처리 속도가 빠르다. List와 달리, Map에는 순서가 없다 HashMap 클래스는 Map 인터페이스를 구현하므로, 중복된 키로는 값을 저장할 수 없습니다. 하지만 같은 값을 다른 키로 저장하는 것은 가능합니다. log 파일 192.168.0.1 20210517000000.. 2021. 5. 26.
[Java] List 컬렉션 List컬랙션이란 List컬렉션은 객체를 일렬로 늘어놓은 구조를 가지고 있다. 객체를 인덱스로 관리하기 때문에 객체를 저장하면 저장하면 자동 인덱스가 부여되고 인덱스로 객체를 검색를 검색, 삭제할 수 있는 기능을 제공 List컬렉션은 객체 자체를 저장하는것이 아니라 다음 그림과 같이 객체의 번지를 참고 한다. 동일한 객체를 중복 저장할 수 있는데, 이 경우 동일한 번지를 참조, null도 저장이 가능하면 이 경우 해당 인덱스는 객체를 참조하지 않는다. ArrayList이란 arrayList는 List 인터페이스의 구현 클래스로, ArrayList에 객체를 추가하면 객체가 인덱스로 관리된다. 일반 배열과 ArrayList는 인덱스로 객체를 관리하는다는 점에서 유사하지만, 큰차이는 배열은 생성할 때 크기가 .. 2021. 5. 22.