전체 글
-
TreeSet공부/Java 2024. 4. 16. 23:02
TreeSet - 이진 탐색 트리(binary search tree)로 구현되어 있으며, 범위 탐색과 정렬에 유리하다. - 데이터를 저장할 때 boolean add(Object o)를 사용한다. 루트부터 트리를 따라 내려가며 값을 비교한다. ※ 이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖는다. 각 요소(node)가 나무(tree) 형태로 연결 (LinkedList의 변형) ※ 첫 번째 요소를 루트(root)라고 부른다. ※ 이진 트리의 모든 노드를 한번씩 읽는 것을 트리순회(tredd traversal)라고 한다. 전위, 중위, 후위 순회법이 있으며, 중위 순회하면 오름차순으로 정렬된다. 이진 탐색 트리 - 부모보다 작은 값은 왼쪽, 큰 값은 오른쪽에 저장한다. - 데이터가 많아질수록 추가, 삭..
-
HashSet공부/Java 2024. 4. 15. 22:55
HashSet - Set 인터페이스를 구현한 컬렉션 중 하나이며, 순서가 저장되지 않고 중복이 허용되지 않는다. ※ 순서를 유지하고 싶으면 LinkedHashSet 클래스를 사용한다. HashSet의 생성자와 메서드 생성자 또는 메서드 설명 HashSet() HashSet 객체를 생성한다. HashSet(Collection c) 주어진 컬렉션을 포함하는 HashSet 객체를 생성한다. HashSet(int initialCapacity) 주어진 값을 초기용량으로 하는 HashSet 객체를 생성한다. HashSet(int initialCapacity, float loadFactor) 초기용량과 load factor를 지정하는 생성자 boolean add(Object o) 주어진 객체를 저장한다. (성공하면 ..
-
Comparator와 Comparable공부/Java 2024. 4. 14. 20:19
Comparator와 Comparable - 객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인터페이스 Comparable 기본 정렬기준을 구현하는데 사용 Comparator 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용 - compare()와 compareTo()는 두 객체의 비교결과를 반환하도록 작성한다. 같으면 0, 오른쪽이 크면 음수(-), 작으면 양수(+)다. - Arrays.sort()는 배열을 정렬할 때, Comparator를 지정해주지 않으면 저장하는 객체(Comparable을 구현한 클래스의 객체)에 구현된 내용에 따라 정렬된다. - 대소문자를 구분하지 않고 정렬할 때는 CASE_INSENSITIVE_ORDER 상수를 사용하면 편리하다.
-
Arrays공부/Java 2024. 4. 12. 19:19
Arrays - 배열을 다루기 편리한 메서드(static)를 제공한다. 1) 배열의 출력 : toString() 2) 배열의 복사 : copyOf(), copyOfRange() 3) 배열 채우기 : fill(), setAll() 4) 배열의 정렬과 검색 : sort(), binarySearch() 5) 다차원 배열의 출력 : deepToString() 6) 다차원 배열의 비교 : deepEquals() 7) 배열을 List로 변환 : asList(Object ... a) 8) 람다와 스트림 관련 : parallelXXX(), spliterator(), stream()
-
Iterator, Enumeration, Map과 Iterator공부/Java 2024. 4. 11. 23:18
Iterator, Enumeration, Map과 Iterator - 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것 - 컬렉션에 iterator()를 호출해서 iterator를 구현한 객체를 얻어서 사용한다. - iterator는 1회용이라 다 사용하고 나면 다시 얻어와야 사용할 수 있다. Iterator 컬렉션에 저장된 데이터를 접근하는데(읽을 때) 사용되는 인터페이스 ListIterator Iterator에 양방향 조회기능 추가(List를 구현한 경우만 사용 가능) Enumeration Iterator의 구버전 Iterator 인터페이스의 메서드 메서드 설명 boolean hasNext() 읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다. Object nex..
-
Stack과 Queue공부/Java 2024. 4. 9. 23:32
Stack과 Queue Stack - LIFO 구조 (Last in First Out) : 마지막에 저장된 것을 제일 먼저 꺼내는 것 - 아래가 막힌 상자의 모양으로, 순차적으로 데이터가 쌓이고, 맨 위부터 데이터를 추출하게 된다. - 배열 구현에 효율적이다. - Stack은 클래스가 존재하기 때문에, Stack s = new Stack();을 사용해 객체 생성이 가능하다. Stack의 메서드 메서드 설명 boolean empty() Stack이 비어있는지 알려준다. Object peek() Stack의 맨 위에 저장된 객체를 반환, pop()과 달리 Stack에서 객체를 꺼내지는 않는다. 비었을 때는 EmptyStackException이 발생한다. Object pop() Stack의 맨 위에 저장된 객..
-
LinkedList공부/Java 2024. 4. 8. 02:17
LinkedList 배열의 장단점 장점 - 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간(접근시간, access time)이 짧다. 단점 - 크기를 변경할 수 없다. 크기를 변경해야 하는 경우 새로운 배열을 생성 후 데이터를 복사해야 한다. - 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸린다. 데이터를 변경하기 위해 다른 데이터를 옮겨야하기 때문이다. ※ 순차적인 데이터 추가(끝에 추가)와 삭제(끝부터 삭제)는 빠르다. LisnkedList ※ LinkedList는 배열의 단점을 보완한다. - 배열과 달리 LinkedList는 불연속적으로 존재하는 데이터를 연결(link)한다. - 데이터의 삭제는 단 한 번의 참조변경만으로 가능하다. - 데이터의 추가는 한번의 Node 객체 생성과 두 번의 ..