전체 글(101)
-
[JAVA] Set - HashSet
HashSet은 Set Interface를 구현한 가장 대표적인 컬렉션 중복된 요소를 저장하지 않는다. 저장순서를 유지 않는다. 자체적인 저장방식에 따라 순서가 결정이 된다. HashSet의 주요 생성자 및 메소드 생성자 또는 메서드 설명 boolean add 새로운 객체를 생성한다. boolean addAll(Collection c) 주어진 컬렉션에 모든 객체를 추가 void clear() 저장된 객체를 모두 삭제 boolean contains(Object o) 지정된 객체를 포함하고 있는지 알려준다. boolean remove(Object o) 지정된 객체를 HashSet에서 삭제한다. LinkedHashSet 중복을 제거하는 동시에 저장한 순서를 유지하고 싶다면 HashSet대신 LinkedHash..
2020.06.14 -
[JAVA] Iterator
Iterator이란? Iterator는 자바의 컬렉션 프레임웍에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화 하였는데 그 중 하나가 Iterator이다. Iterator은 Interface로 어떤 메소드가 있는지 확인해보자. 메소드 설명 boolean hasNext(); 읽어 올 요소가 남아있는지 확인하는 메소드이다. Object next(); 다음 요소를 읽어 온다. 호출하기 전에 hasNext()를 호출하는게 안전 void remove(); next()로 읽어 온 요소를 삭제한다. next()를 호출한 다음에 remove()를 호출해야 한다. ListIterator Iterator은 단방향으로만 이동할 수 있는 데 반해 ListIterator은 양방향으로의 컬렉션 요소 접근이 가능하다.
2020.06.14 -
[JAVA] List - Stack VS Queue
구현을 위해 어떠한 컬렉션 클래스를 사용하는 것이 좋을까? - 순차적으로 데이터를 추가&삭제하는 스택에는 ArrayList와 같은 배열 기반의 컬렉션 클래스를 사용 - 큐는 데이터를 삭제할 때 첫 번째 저장된 데이터를 삭제 --> 빈 공간을 채우기 위해 데이터의 복사가 발생함으로써 ArrayList는 비효율적. --> LinkedList로 구현하는 것이 더 적합하다. PriorityQueue Queue인터페이스의 구현체 중의 하나, 저장한 순서에 관계없이 우선순위가 높은 것부터 꺼내게 된다는 특징 Dequeue Queue의 변형으로, 한 쪽 끝으로만 추가/삭제하는 Queue와 달리, Deque는 양쪽 끝에 추가/삭제 가능 Deque의 구현체로는 ArrayDeque와 LinkedList 등이 있다.
2020.06.14 -
[JAVA] List - LinkedList
LinkedList는 List인터페이스를 구현한다. 이 말은 즉 List인터페이스를 구현했기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 갖는다. Linked List의 요소 Linked List의 각 요소는 우리가 많이 들어봤듯이 노드(Node)라 불린다. 이 노드들은 자신과 연결된 다음 요소에 대한 참조(주소값) + 자신의 데이터로 구성된다. class Node // 단방향 { Node next; // 다음 요소의 주소 Object obj; // 현재 요소의 데이터 } ArrayList와 Vector 같은 배열의 단점을 보완하기 나왔다. 배열은 모든 데이터가 연속적으로 존재하지만 LinkedList는 불연속적으로 존재하는 데이터를 서로 연결한 형태이다. 여기 위에서 33의 값을 지우려..
2020.06.12 -
[JAVA] List - ArrayList
ArrayList는 List인터페이스를 구현한다. 이 말은 즉 List인터페이스를 구현했기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 갖는다. Vector의 상위호환 ArrayList는 기존의 Vector를 개선한 것으로 Vector와 구현원리와 기능적인 측면에서 동일하다고 할 수 있다. 가능하다면 Vector보다는 자바에서는 ArrayList를 사용하자. 데이터를 순차적으로 저장한다. 1. Object배열을 이용해서 데이터를 순차적으로 저장한다. 2. 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성한 후 기존의 배열을 저장하고 새로운 배열로 기존의 배열이 붙여진 다음에 값이 저장된다. 용량을 변경할 때 새로운 배열을 생성한 후 기존의 배열로부터 새로 생성된 배열로 데..
2020.06.12 -
[JAVA] Collections Framework의 구조
컬렉션 프레임웍이란, ' 데이터 군을 저장하는 클래스들을 표준화한 설계 ' 를 뜻한다. 컬렉션은 다수의 데이터, 즉 데이터 그룹을, 프레임웍은 표준화된 프로그래밍 방식을 의미한다. 인터페이스와 다향성을 이용한 객체지향적 설계를 통해 표준화되어 있어 사용법을 익히기에 편하다. 재사용성이 높은 코드를 작성할 수 있다. 컬렉션 프레임웍의 핵심 인터페이스 및 구현클래스 Interface 특징 Implements Iterator 컬렉션에 저장된 요소를 읽어오는 방법 LIST SET MAP LIST 순서가 있는 데이터 집합. 데이터의 중복을 허용한다. ArrayList LinkedList Stack Vector ( ArrayList 를 사용하자 ) SET 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하..
2020.06.11