Class12(자료구조)
2023. 01. 18. 수업내용 정리
자료구조
자료구조
- 자바에서 자료구조는 어떠한 데이터를 쉽게 가공/처리하기 위해 사용한다.
Collection
-
Collection
(인터페이스,java.util.Collection
) 자료구조는 순서가 있는 데이터 혹은 데이터의 집합에 대한 단일 구조를 가진다.List
List
(인터페이스,java.util.List
) 자료구조는 순서가 있는 데이터를 다루기 위해 사용한다.- 메서드
add(T t)
: 매개변수T
타입의 객체t
를List
의 끝(마지막 자리)에 추가한다.add(int i, T t)
: 매개변수T
타입의 객체t
를List
의i
번째 인자가 될 수 있도록 추가한다.addAll(Collection<? extends T> c)
: 매개변수c
가 가지는 모든 인자를 끝에 추가한다.addAll(int i, Collection<? extends T> c)
: 매개변수c
가 가지는 모든 인자 중 첫번째 인자가i
번째 인자가 될 수 있도록 모두 추가한다.clear()
:List
객체가 가지고 있는 모든 인자를 제거한다.contains(Object o)
:List
객체가 가지고 있는 인자 중 매개 변수o
와equals()
메서드 비교 결과가true
인 것을 가지고 있는가에 대한 여부 (boolean
)를 반환한다.containsAll(Collection<? extends T>c)
: 매개 변수인c
가 가진 모든 인자를 호출 대상이 되는List
객체가 모두 가지고 있는지에 대한 여부(boolean
)를 반환한다. 가지고 있는가에 대한 여부는contains
와 동일하다.get(int i)
:i
번째 인자를 반환한다.indexOf(Object o)
:List
객체가 가지고 있는 인자 중 매개 변수o
와equals()
비교 결과가true
인 첫번째 인자의 순번(int
)을 반환한다.isEmpty()
: 인자가 있는가 없는가에 대한 여부(boolean
)을 반환한다.iterator()
:List
객체가 가지고 있는 인자를 반복할 수 있는 반복자(Iterator<T>
)를 반환한다.lastIndxOf(Object o)
:List
객체가 가지고 있는 인자 중 매개 변수o
와equals()
비교 결과가true
인 마지막 인자의 순번(int
)을 반환한다.remove(int i)
:List
객체가 가지고 있는 인자 중 그 순번이i
인 인자를 제거한다. 후행하는 인자의 순번은 당겨진다.removeAll(Collection<?> c)
:List
객체가 가지고 있는 인자 중c
가 가진 인자와equals()
비교 결과가true
인 모든 인자를 제거한다.set(int i, T t)
:List
객체가 가지고 있는 인자 중i
번째 인자의 값을 매개 변수인t
로 바꾼다. 바뀌어진 이전T
타입의 객체를 반환한다.size()
:List
객체가 가지고 있는 인자의 개수를 반환한다.toArray()
:List
객체가 가지고 있는 인자들을Object[]
타입으로 반환한다.toArray(T[] ts)
:List
객체가 가지고 있는 인자들을T[]
타입의 객체에 대입하여 반환한다.
- 하위 타입
ArrayList<T>
(클래스,java.util.List
) 자료구조는 인자 사이에 연결 고리 없이, 데이터에 접근할 수 있어, 인자에 접근하는 속도는 빠른 대신, 데이터를 추가하거나 삭제하는 속도가 느리다.- 인덱스를 통한 데이터 접근의 시간 복잡도: O(1)
- 데이터의 삽입 및 삭제에 대한 시간 복잡도 : O(n)
LinkedList<T>
(클래스,java.util,LinkedList
) 자료구조는 각 인자가 인접한 인자를 기억하고 있는 형식이어서 인자에 접근하는 속도는 느린 대신, 데이터를 추가하거나 삭제하는 속도가 빠르다.- 인덱스를 통한 데이터 접근의 시간 복잡도 : O(n);
- 데이터의 삽입 및 삭제에 대한 시간 복잡도 : O(1);
Vector<T>
(클래스,java.util.Vector
) 자료구조는 동기화된(Synchronized)ArrayList<T>
와 같다.Stack<T>
(클래스,java.util.Stack
) 자료구조는 주로 선입후출의 기능(push()
,pop()
)을 사용하기 위해 사용한다.
- 메서드
Set
Set
(인터페이스,java.util.Set
) 자료구조는 순서가 없는, 집합적인 데이터를 다루기 위해 사용한다.- 메서드
add(T t)
: 매개변수인t
를Set
의 인자로 추가한다.addAll(Collection<? extends T> c)
: 매개변수c
가 가지는 모든 인자를 추가한다.clear()
: 모든 인자를 제거한다.contains(Object o)
:Set
객체가 가지고 있는 인자 중 매개 변수o
와equals()
메서드 비교 결과가true
인 것을 가지고 있는가에 대한 여부 (boolean
)를 반환한다.containsAll(Collection<? extends T>c)
: 매개 변수인c
가 가진 모든 인자를 호출 대상이 되는Set
객체가 모두 가지고 있는지에 대한 여부(boolean
)를 반환한다. 가지고 있는가에 대한 여부는contains
와 동일하다.isEmpty()
: 인자가 있는가 없는가에 대한 여부(boolean
)을 반환한다.iterator()
:Set
객체가 가지고 있는 인자를 반복할 수 있는 반복자(Iterator<T>
)를 반환한다.remove(T t)
:Set
객체가 가지고 있는 인자 중 매개 변수t
와equals()
호출 결과가true
인 인자를 제거한다.removeAll(Collection<?> c)
:Set
객체가 가지고 있는 인자 중c
가 가진 인자와equals()
비교 결과가true
인 모든 인자를 제거한다.size()
:Set
객체가 가지고 있는 인자의 개수를 반환한다.toArray()
:Set
객체가 가지고 있는 인자들을Object[]
타입으로 반환한다.toArray(T[] ts)
:Set
객체가 가지고 있는 인자들을T[]
타입의 객체에 대입하여 반환한다.
- 하위 타입
HashSet
(클래스,java.util.HashSet
)자료구조는 순서가 없는, 집합적인 데이터를 다루기 위해 사용한다.ScoredSet
(인터페이스,java.util.ScoreSet
)집합적인 데이터를 정렬하여 다루기 위해 사용한다.- 하위 타입
TreeSet
(클래스,java.util.TreeSet
)집합적인 데이터를 정렬하여 다루기 위해 사용한다.
- 하위 타입
- 메서드
Map
Map
(인터페이스,java.util.Map
) 자료구조는 순서와 관계 없고, 키와 값 쌍(Key-Value-Pair)으로 이루어진 데이터를 다룰때 사용한다.- 객체 메서드
clear()
: 가지고 있는 키와 값 쌍을 모두 제거한다.containsKey(Object o)
: 가지고 있는 쌍 중에 키가 전달된o
와 동일한 쌍이 있는가의 여부(boolean
)를 반환한다.containsValue(Object o)
: 가지고 있는 쌍 중에 값이 전달된o
와 동일한 쌍이 있는가의 여부(boolena
)를 반환한다.get(Object o)
: 가지고 있는 쌍 중에 키가 전달된o
와 같은 쌍의V
타입의 객체인 값을 반환한다.getOrDefault(Object o, V v)
: 가지고 있는 쌍 중에 키가 전달된o
와 같은 쌍이 있다면 그 값을, 없다면 전달받은v
를 반환한다.keySet()
: 가지고 있는 쌍들의 키만 모아Set<K>
타입의 객체로 반환한다.put(K k, V v)
: 키가k
이고 값이v
인 키-값 쌍을 추가한다. 단, 이미 존재하는 쌍 중에 키가k
와 같은 쌍이 있다면 기존 쌍의 값을 새로운 값으로 대체하고 대체된 값을 반환한다.putAll(Map<? extneds K, ? extends V>m)
:Map
타입의 매개변수m
이 가지고 있는 모든 키-값 쌍을 호출 대상이 되는Map
의 인자로 복사한다.putIfAbsent(K k, V v)
: 키가k
이고, 값이v
인 키-값 쌍을 추가한다. 단, 키k
로 접근한 쌍이 없거나, 그 값이null
인 경우에는 추가를 하고null
을 반환하며, 이미 존재한다면v
를 반환한다.remove(Object o)
: 가지고 있는 키-값 쌍 중 키가o
와equals()
에 대해true
인 쌍을 제거한다.replace(K k, V v)
: 가지고 있는 키-값 쌍 중 키가k
와 동일한 쌍에 대한 값을v
로 지정하고 대체된V
타입의 객체를 반환한다. 만약, 키가k
와 동일한 쌍이 없다면 아무 것도 하지 않고null
을 반환한다.size()
: 가지고 있는 키-값 쌍의 개수(int
)를 반환한다.values()
: 가지고 있는 키-값 쌍의 값들을 가지는Collection<V>
객체를 반환한다.
- 하위 타입
HashMap
(클래스,java.util.HashMap
)자료구조는 순서와 관계 없고, 키와 값 쌍(Key-Value-Pair)으로 이루어진 데이터를 다룰 때 사용한다. 동기화를 보장하지 않는다.Hashtable
(클래스,java.util.Hashtalbe
)자료구조는 순서와 관계 없고, 키와 값 쌍(Key-Value-Pair)으로 이루어진 데이터를 다룰 때 사용한다. 동기화를 보장한다.- `
(인터페이스,
java.util.SortedMap`)자료구조는 엄밀히 얘기하면 키-값 쌍에는 순서가 없지만 키의 해시값을 기준으로 정렬을 하기 때문에 키-값 쌍을 키 기준으로 정렬하기가 쉽다.- 하위 타입
TreeMap
(클래스,java.util.TreeMap
)자료구조는SortedMap
인터페이스를 구현한 대표 클래스이다.
- 하위 타입
- 객체 메서드
댓글남기기