분류 전체보기(129)
-
컬렉션_HashSet_2
HashSet은 객체를 저장하기 전, 기존에 중복되는 객체가 있는지 확인한다. Set 특징은 뭐다? 중복 허용을 안 한다! 따라서 위의 작업을 거쳐야만 한다. boolean add(Obejct o)는 저장할 객체의 equals()와 hashCode()를 호출한다. equals() 와 hashCode()가 오버라이딩 되어 있어야 한다. equals() - 같은 객체인지 확인 hashCode() - 해당 객체의 해시 코드 값을 반환 public class HashSet_3 { public static void main(String[] args) { HashSet set = new HashSet(); set.add("abc"); set.add("abc"); set.add(new Person("David", 1..
2024.02.20 -
컬렉션_HashSet(1)
Set 인터페이스에 대해 약식으로 복기를 해보자. Set 인터페이스 특징 - 순서를 보장하지 않는다. - 중복을 허용하지 않는다. - 구현클래스로 HashSet 과 SortedSet 그리고 이를 상속받는 TreeSet 이 있다. TreeSet - 범위 검색과 정렬에 유리한 컬렉션 클래스 - HashSet 보다 데이터 추가, 삭제에 시간이 더 걸린다. HashSet - Set 인터페이스를 구현한 대표적인 컬렉션 클래스 순서를 유지하고 싶으면? LinkedHashSet 클래스를 사용하자. 이번 글에선 HashSet에 대해 학습 하겠다. 주요 메서드 생성자 - HashSet() - 기본 생성자 - HashSet(Collection c) - 컬렉션에 있는 값들을 HashSet에 옮겨 담는 생성자 - HashSe..
2024.02.19 -
순차 탐색 ? 이진 탐색?
순차탐색 처음부터 끝까지 하나씩 이동하면서 지정 값을 탐색하는 것. for문이라던가 그런 거 앞에서 시작해서 뒤로 끝나던, 뒤에서 시작해서 앞으로 끝나던. 단점 : 데이터가 많을수록, 찾는 데이터의 위치가 구석져 있을수록 느림. ex) 앞에서 시작했는데 찾는 값이 거의 뒤 끝에 있는 경우. 뒤에서 시작했는데 찾는 값이 거의 앞에 있는 경우 등. 이진 탐색 에이터를 찾는 목록을 반으로 쪼개고, 쪼개고 쪼개는 식으로 탐색해 나가는 방식 반드시 정렬(sort)가 돼 있어야 함. (정렬하지 않을 경우, 이상한 값이 튀어 나옴.) 장점 - 순차정렬보다 검색 횟수가 현저히 줄어듦. 단점 - 정렬작업이 반드시 필요하므로, 처음 준비에 비용이 많이 발생함.
2024.02.17 -
컬렉션_Iterator 과 Map
Iterator 는 Collection 인터페이스에 포함 돼 있다고 했다. 따라서, Collection 의 구현 클래스라면 Iterator 를 사용할 수 있다고, 앞선 글에서 학습하였다. 그런데, Map 에는 iterator() 가 없다. ?????????? public Interface Collection{ ... Iterator iterator(); ... } 이전 글에서 ArrayList에서는 iterator() 를 사용할 수 있었다. ArrayList를 거슬러 올라가 보니, Collection 을 상속받고 있음이 확인 되었다. public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Se..
2024.02.17 -
컬렉션_Iterator
Iterator ? Iterator 라는 인터페이스가 있다. 이 인터페이스의 목적은 ' 컬렉션에 담긴 요소들을 읽어오는 것'이다. Iterator 는 Collection 인터페이스에 포함 돼 있다. (-> collection 의 sub class 라면 다들 Iterator를 갖는다) 주요 메서드 Iterator의 주요 목적은 컬렉션의 요소 값을 갖고 오는 것이라 했다. 하여 주요 메서드로는 boolean hasNext() - 다음 요소가 있는지 확인한다. 다음 요소가 있다면 true, 없다면 false Obejct next() - 다음 요소가 있다면 가져온다. public class IteratorEx { public static void main(String[] args) { ArrayList list..
2024.02.17 -
컬렉션_스택&큐
스택 Last In First Out 구조. 마지막에 저자아된 것을 가장 먼저 꺼낸다. 저장(push) 추출(pop) 큐(Queue) First In First Out 구조. 들어간 순서대로 나온다. 저장(offer) 추출(poll) Stack 주요 메서드 boolean empty() - Stack이 비어있는지 알려줌. Object peek() - Stack 중 가장 마지막에 올려진 객체를 반환함. pop()과 다르게, 스택에서 객체를 제거하지는 않는다. Obejct pop() - Stack의 가장 위에 저장된 객체를 꺼냄. (Stack이 비어있다면 EmptyStackException 이 발생함) Obejct push() - Stack에 객체를 저장함. int search(Object o) - Stack..
2024.02.15