일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Spring
- 이진 탐색(binary search)
- 정렬 알고리즘(sort algorithm)
- Grafana
- 코딩공부
- 코딩
- 99클럽
- 회고
- wil
- 자바
- css
- Entity
- Til
- 개발자 취업
- ArrayList
- GIT
- HTML
- cs 공부)준비
- CS
- aop
- 배열
- Java
- github
- 코딩문제
- 메서드
- 프로그래머스
- 자료구조
- 항해99
- 코딩테스트 준비
- 면접(java
- Today
- Total
목록자료구조&알고리즘 (31)
hayu's 개발 일지
학습 키워드- Vector 공부한 내용VectorVector은 ArrayList와 같이 List 인터페이스를 상속받는 컬렉션 프레임워크이며, 사용법은 ArrayList와 크게 다르지 않다.ArrayList와 동일한 구조를 가지며 배열의 크기가 늘어나고, 줄어듬에 따라서 자동으로 크기가 조절이 된다.Vector의 특이한 점이라면 항상 동기화되어있고 Collection 프레임워크에 없는 메서드들을 사용이 가능하다.⇒ 멀티 스레드가 동시에 이 메서드를 실행할 수 없고, 하나의 스레드가 실행을 완료해야만 다른 스레드들이 실행할 수 있다. 그래서 멀티 스레드 환경에서 안정하게 객체를 추가하고 삭제할 수 있다.하지만 동기화라는 특징이 있어 스레드가 아닌 환경에서는 거의 사용이 되지 않는다. 그리고 항상 동기화되므로..
학습 키워드- Hash 공부한 내용ArrayList는 내부 인덱스를 이용하여 검색이 한번에 이루어지기 때문에 빠른 검색 속도를 보장하는 반면 데이터의 추가/삭제시 많은 데이터가 밀리거나 당겨지기 때문에 많은 시간이 소요된다. LinkedList는 추가/삭제시 인근 노드들의 참조값만 수정해 줌으로써 빠른 처리가 가능하지만 데이터를 검색할 경우 해당 노드를 찾기 위해 처음부터 순회 검색을 해야하기 때문에 데이터의 수가 많아질수록 효율이 떨어지는 구조이다.→ 이러한 한계를 극복하기 위해서 제시된 방법이 Hash이다.Hash해시(Hash)는 입력 데이터를 고정된 데이터로 변환된 값을 말한다. 다른 말로 해시 값(Hash Value), 해시 코드, 체크섬 이라고도 한다.이러한 해시는 ‘해시 함수’에 의해서 얻게 ..
학습 키워드- HashSet 공부한 내용HashSetHashSet은 Set 인터페이스에서 지원하는 구현 클래스이다. → Set의 특징을 상속받는다.Set 은 Key의 중복을 허용하지 않고, 키로 null을 허용하지 않는다. 순서 없이 Key로만 데이터를 저장한다. / 만약, 요소의 저장 순서를 유지해야한다면 LinkedHashSet 클래스를 사용하면 된다.여기에서 Key는 요소를 말한다.Set의 가장 큰 장점은 중복을 자동으로 제거해준다는 것이다.Set은 비선형 구조이기 때문에 순서가 없다. 즉, 인덱스가 존재하지 않는다. 값을 추가하거나 삭제할 때는 그 값이 Set 내부에 있는지 검색 후에 추가하거나 삭제를 해야하기 때문에 List 구조에 비해 속도가 느리다.HashSet 변수 선언HashSet set..
LinkedList자바의 Linked List는 ArrayList와 같이 인덱스로 접근하여 조회 / 삽입이 가능하지만 내부 구조는 완전히 다르게 구성되어 있다는 점이 특징이다.ArrayList는 내부적으로 배열을 이용하여 메서드로 이리저리 조작이 가능하게 만든 컬렉션이라면, Linked List는 노드(객체) 끼리의 주소 포인터를 서로 가리키며 링크(참조)함으로써 이어지는 구조이다.→ 객체를 만들면 객체의 주소가 생기게 되는데, 노드마다 각기 객체의 주소를 참조함으로서 연결 형태를 구성하는 것이다. Linked List의 장단점장점배열의 복사나 재할당 없이 데이터 추가 가능 + 유연한 공간을 갖는다.ArrayList는 배열이 꽉 차있는 경우 크기를 늘려 준 다음 데이터를 다시 추가해 주는 과정을 진행해야..
ArrayList 메서드- add(String obj) : ArrayList의 마지막에 문자열을 추가한다. 추가에 성공하면 true를 반환한다.- get(int index) : 지정된 위치의 요소를 반환한다.- set(int index, String element) : 지정된 위치의 요소를 주어진 요소로 교체한다. 이전 요소를 반환한다. - remove(int index) : 지정된 위치의 요소를 리스트에서 제거한다. 제거된 요소를 반환한다. - size() : 리스트의 요소 개수를 반환한다. - isEmpty() : 리스트가 비어 있는지 확인한다. 비어 있으면 true를 반환한다. - clear() : 리스트의 모든 요소를 제거한다. // ArrayList 생성 ArrayList list ..
ArrayListArrayList는 배열의 상위 호완 버전 정도의 개념이다.기존의 배열만으로는 자료를 담고 관리하는데 약간 불편함이 있어서 나온 것이 ArrayList이다.ArrayList 특징연속적인 데이터의 리스트이다.(데이터는 연속적으로 리스트에 들어있어야 하며, 중간에 빈 공간이 있으면 안된다.)ArrayList 클래스는 내부적으로 Object[] 배열을 이용하여 요소를 저장한다.배열을 이용하기 때문에 인덱스를 이용해 요소에 빠르게 접근할 수 있다.크기가 고정되어 있는 배열과 달리 데이터 적재량에 따라 가변적으로 공간을 늘리거나 줄인다. 그러나 배열의 공간이 가득 찰 때 마다 배열을 copy 하는 방식으로 늘리기 때문에 이 과정에서 지연이 발생하게 된다.데이터를 리스트 중간에 삽입/삭제 할 경우,..