์ปฌ๋ ์ ํ๋ ์์ํฌ์ ๊ตฌ์กฐ
List
๋ฐ์ดํฐ์ ์์๊ฐ ์ ์ง๋๋ฉฐ ์ค๋ณต์ด ๊ฐ๋ฅํ๋ค.
ArrayList, Vector, Stack, LinkedList ๋ฑ์ด List ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค.
Set
๋ฐ์ดํฐ์ ์์๊ฐ ์ ์ง๋์ง ์๊ณ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค.
HashSet, TreeSet ๋ฑ์ด Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค.
Map
ํค(key)์ ๊ฐ(value) ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
๋ฐ์ดํฐ์ ์์๊ฐ ์ ์ง๋์ง ์์ผ๋ฉฐ ํค๋ ์ค๋ณต์ ํ์ฉํ์ง ์์ง๋ง ๊ฐ์๋ ์ค๋ณต๋ ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
HashMap, HashTable, TreeMap, Properties ๋ฑ์ด Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค.
Collection ๋ฉ์๋
์ถ๊ฐ
- add(Object o): ๊ฐ์ฒด ๋ฐ ์ปฌ๋ ์ ์ ๊ฐ์ฒด๋ค์ ์ปฌ๋ ์ ์ ์ถ๊ฐ
- addAll(Collection c): ๊ฐ์ฒด ๋ฐ ์ปฌ๋ ์ ์ ๊ฐ์ฒด๋ค์ ์ปฌ๋ ์ ์ ์ถ๊ฐ
๊ฒ์
- contains(Object o): ๊ฐ์ฒด์ o๊ฐ ์ ์ฅ๋์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํด
- containsAll(Collection c): ์ปฌ๋ ์ ์ c๊ฐ ์ ์ฅ๋์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํด
- iterator(): ์ปฌ๋ ์ ์ iterator๋ฅผ ๋ฆฌํด
- equals(Object o): ์ปฌ๋ ์ ์ด ๋์ผํ์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํด
- isEmpty(): ์ปฌ๋ ์ ์ด ๋น์ด์๋์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํด
- size(): ์ ์ฅ๋ ์ ์ฒด ๊ฐ์ฒด ์๋ฅผ ๋ฆฌํด
์ญ์
- clear(): ์ ์ฅ๋ ๋ชจ๋ ๊ฐ์ฒด ์ญ์
- remove(Object o): ์ฃผ์ด์ง ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๊ณ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ๋ฆฌํด
- removeAll(Collection c): ์ฃผ์ด์ง ์ปฌ๋ ์ ์ ์ญ์ ํ๊ณ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ๋ฆฌํด
- retainAll(Collection c): ์ฃผ์ด์ง ์ปฌ๋ ์ ์ ์ ์ธํ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ์ปฌ๋ ์ ์์ ์ญ์ ํ๊ณ ์ปฌ๋ ์ ์ ๋ณํ๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํด
๋ณํ
- toArray(): ์ปฌ๋ ์ ๊ฐ์ฒด๋ค์ ๊ฐ์ฒด ๋ฐฐ์ด(Object [])๋ก ๋ฐํ
- toArray(Object[] a): ์ฃผ์ด์ง ๋ฐฐ์ด์ ์ปฌ๋ ์ ์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํด์ ๋ฐํ
Iterator
๋ฐ๋ณต์๋ผ๋ ์๋ฏธ๋ก ์ปฌ๋ ์ ์ ์ ์ฅ๋ ์์๋ค์ ์ฐจ๋ก๋๋ก ์ฝ์ด์จ๋ค.
Iterator ์ธํฐํ์ด์ค์ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์ ์๋์ด ์์ผ๋ฉฐ Collection ์ธํฐํ์ด์ค์๋ iterator()
๊ฐ ์ ์๋์ด ์๊ธฐ ๋๋ฌธ์ Collection์ ์์๋ฐ์ ๊ตฌํํ ํด๋์ค์์ ์ฌ์ฉํ ์ ์๋ค. iterator()
๋ฅผ ํธ์ถํ๋ฉด Iterator ํ์
์ ์ธ์คํด์ค๊ฐ ๋ฐํ๋๋ค.
Iterator๋ฅผ ์ฌ์ฉํ์ง ์๊ณ for-each๋ฌธ์ ์ด์ฉํด์ ์ํํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
ArrayList<String> list = ...;
for(String str : list) {
...
}
Iterator ์ธ์คํด์ค ๋ฉ์๋
- hasNext(): ์ฝ์ด์ฌ ๊ฐ์ฒด๊ฐ ์์ผ๋ฉด true๋ฅผ ๋ฆฌํดํ๊ณ ์์ผ๋ฉด false๋ฅผ ๋ฆฌํดํ๋ค.
- next(): ํ๋์ ๊ฐ์ฒด๋ฅผ ์ฝ์ด์จ๋ค. next()๋ฅผ ํธ์ถํ๊ธฐ ์ ์ hasNext()๋ฅผ ํตํด ๋ค์ ์์๊ฐ ์๋์ง ํ์ธํด์ผ ํ๋ค.
- remove(): next()๋ก ์ฝ์ด์จ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๋ค. next() → remove() ์์๋ก ์ฌ์ฉํด์ผ ํ๋ค.
List
List ์ธํฐํ์ด์ค๋ ๋ฐฐ์ด์ฒ๋ผ ์ผ๋ ฌ๋ก ๋์ด๋์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ฉด ์ธ๋ฑ์ค๊ฐ ์๊ธฐ๊ณ ์ธ๋ฑ์ค๋ก ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ค.
List ๋ฉ์๋
์ถ๊ฐ
- add(int index, Object element): index์ element๋ฅผ ์ถ๊ฐ
- addAll(int index, Collection c): index์ c๋ฅผ ์ถ๊ฐ, ๋ฆฌํด ํ์ ์ boolean
- set(int index, Object element): index์ element๋ฅผ ์ ์ฅ, ๋ฆฌํด ํ์ ์ Object
๊ฒ์
- get(int index): index์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํ, ๋ฆฌํด ํ์ ์ Object
- indexOf(Object o), lastIndexOf(Object o): ์, ์ญ๋ฐฉํฅ์ผ๋ก ํ์ํ์ฌ o์ ์ธ๋ฑ์ค ๋ฐํ
- listIterator(), listIterator(int index): List๋ฅผ ํ์ํ ์ ์๋ iterator ๋ฐํ
- subList(int fromIndex, int toIndex): fromIndex~toIndex ๊ฐ์ฒด๋ฅผ ๋ฐํ
์ญ์
- remove(int index): index์ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๊ณ ์ญ์ ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํ, ๋ฆฌํด ํ์ ์ Object
- remove(Object o): o๋ฅผ ์ญ์ , ๋ฆฌํด ํ์ ์ boolean
์ ๋ ฌ
- sort(Comparator c): ๋น๊ต์(comparator)๋ก ๋ฆฌ์คํธ ์ ๋ ฌ
ArrayList
List ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํด๋์ค์ด๋ค.
๋ฐฐ์ด๊ณผ ๋ฌ๋ฆฌ ์ ์ฅ๊ณต๊ฐ์ด ์ด๊ณผ๋๋ฉด ์๋์ผ๋ก ๋์ด๋๋ฉฐ ์์๊ฐ ์ ์ง๋๋ค๋ ํน์ง์ ๊ฐ๋๋ค.
ArrayList๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ์ ์ฅํ ๊ฐ์ฒด ํ์ ์ ํ์ ๋งค๊ฐ๋ณ์๋ก ํ๊ธฐํ๊ณ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํธ์ถํ๋ค.
ArrayList<ํ์
๋งค๊ฐ๋ณ์> ๊ฐ์ฒด๋ช
= new ArrayList<ํ์
๋งค๊ฐ๋ณ์>(์ด๊ธฐ ์ ์ฅ ์ฉ๋);
ArrayList๋ ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ถ๊ฐ, ์ญ์ ํ๋ ๊ฒฝ์ฐ ์ ๋ฆฌํ๊ณ ์ธ๋ฑ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ๊ฒ์์ด ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๋ค.
ํ์ง๋ง ์ค๊ฐ์ ์์นํ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ, ์ญ์ ํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํด์ ์ด๋ํ๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ์ ํ๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ์๋์ ์์ฑํ LinkedList๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์จ์ ์ด๋ค.
ArrayList (Java Platform SE 8 )
Resizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In addition to implementing the List interface, this class provides methods to manipulate the size of the array that is
docs.oracle.com
LinkedList
๋ฐ์ดํฐ๊ฐ ๋ถ์ฐ์์ ์ผ๋ก ์กด์ฌํ๋ฉฐ ์ด์ ์์์ ๋ค์ ์์์ ์ฃผ์๊ฐ๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ค.
๋ฐ๋ผ์ ๋น๋ฒํ ๋ฐ์ดํฐ์ ์ญ์ ๋ ์ฝ์ ์ด ๋ฐ์ํ๋ ๊ณณ์์๋ LinkedList์ ์ฒ๋ฆฌ ์๋๊ฐ ArrayList๋ณด๋ค ๋น ๋ฅด๋ค.
ํ์ง๋ง ๋ฐ์ดํฐ ๊ฒ์์ ์์ด์๋ ์์ ์ธ๋ฑ์ค๋ถํฐ ์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๊น์ง ์์ฐจ์ ์ผ๋ก ๊ฐ ๋ฐ์ดํฐ์ ์ ๊ทผํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ๋๋ฆฐ ์๋๋ฅผ ๊ฐ์ง๋ค.
Set
Set์ ์ํ์์์ ์งํฉ๊ณผ ๋น์ทํ๊ฒ ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์์ผ๋ฉฐ ์์๊ฐ ์๋ค.
๋ํ์ ์ธ ํด๋์ค๋ก๋ HashSet, TreeSet์ด ์๋ค
Set ๋ฉ์๋
์ถ๊ฐ
- add(Object o): o๋ฅผ ์ถ๊ฐํ๊ณ ์ฑ๊ณต์ฌ๋ถ๋ฅผ ๋ฐํ, ์ค๋ณต ๊ฐ์ฒด๋ฉด false๋ฅผ ๋ฐํ
๊ฒ์
- contains(Object o): o๊ฐ Set์ ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isEmpty(): Set์ด ๋น์ด์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- iterator(): Iterator๋ฅผ ๋ฐํ
- size(): ์ ์ฒด ๊ฐ์ฒด์ ์๋ฅผ ๋ฐํ
์ญ์
- clear(): ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ์ญ์
- remove(Object o): o๋ฅผ ์ญ์ ํ๊ณ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ๋ฐํ
HashSet
Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ ํด๋์ค์ด๋ค.
HashSet (Java Platform SE 7 )
This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permi
docs.oracle.com
TreeSet
TreeSet์ ์ด์ง ํ์ ํธ๋ฆฌ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ์ ๋ ฌ๊ณผ ๊ฒ์์ ์ ๋ฆฌํ๋ค.
TreeSet (Java Platform SE 7 )
A NavigableSet implementation based on a TreeMap. The elements are ordered using their natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used. This implementation provides guaranteed log(n) time cost for
docs.oracle.com
Map
Map ์ธํฐํ์ด์ค๋ ํค(key)์ ๊ฐ(value)์ผ๋ก ๊ตฌ์ฑ๋ Entry ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋๋ค.
๋ชจ๋ key๋ ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง๋ฉฐ key๊ฐ ๋ค๋ฅด๋ฉด ๊ฐ์ด ๊ฐ์๋ ๋ค๋ฅธ entry๋ก ๊ฐ์ฃผํ๋ค.
Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค๋ก๋ HashMap, Hashtable, TreeMap, SortedMap ๋ฑ์ด ์๋ค.
Map ๋ฉ์๋
์ถ๊ฐ
- put(Object key, Object value): key๊ฐ ์๋ก์ด ํค์ผ ๊ฒฝ์ฐ ๊ฐ์ ์ ์ฅํ๊ณ null์ ๋ฐํ, ์ด๋ฏธ ์กด์ฌํ๋ key์ผ ๊ฒฝ์ฐ ๊ธฐ์กด์ ๊ฐ์ value๋ก ๋์ฒดํ๊ณ ๊ธฐ์กด์ ๊ฐ์ ๋ฐํ
๊ฒ์
- containsKey(Object key): key๊ฐ ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- containsValue(Object value): value๊ฐ ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- entrySet(): ํค, ๊ฐ ์์ ๋ชจ๋ Map.Entry ๊ฐ์ฒด๋ฅผ Set์ ๋ด์์ ๋ฐํ
- get(Object key): key์ ํด๋นํ๋ ๊ฐ์ ๋ฐํ
- isEmpty(): ๋น์ด์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- keySet(): ๋ชจ๋ ํค๋ฅผ Set์ ๋ด์์ ๋ฐํ
- size(): Entry ๊ฐ์ฒด์ ๊ฐฏ์๋ฅผ ๋ฐํ
- values(): ์ ์ฅ๋ ๋ชจ๋ ๊ฐ์ Collection์ ๋ด์์ ๋ฐํ
์ญ์
- clear(): ๋ชจ๋ Map.Entry๋ฅผ ์ญ์
- remove(Object key): key์ ์ผ์นํ๋ Map.Entry๋ฅผ ์ญ์ ํ๊ณ ๊ฐ์ ๋ฐํ
HashMap
Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ ํด๋์ค์ด๋ค.
ํด์ ํจ์๋ฅผ ํตํด ํค์ ๊ฐ์ด ์ ์ฅ๋๋ ์์น๋ฅผ ๊ฒฐ์ ํ๋ฉฐ ์ฝ์ ๋๋ ์์์ ์์น๋ ๊ด๊ณ๊ฐ ์๋ค.
ํด์ฑ์ ์ฌ์ฉํ์ฌ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ๋ ํจ์จ์ ์ด๋ค.
HashMap์ ์์ฑํ ๋์๋ ํค์ ๊ฐ์ ํ์ ์ ๋ฐ๋ก ์ง์ ํด์ค์ผ ํ๋ค.
HashMap<String, Integer> hashmap = new HashMap<>();
ํค์ ๊ฐ์ ์์ผ๋ก ์ ์ฅํ๊ธฐ ๋๋ฌธ์ iterator()
๋ฅผ ์ง์ ํธ์ถํ ์ ์๊ณ keySet()
์ด๋ entrySet()
์ ํตํด Set์ผ๋ก ๋ณํํ ํ์ iterator()
๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ํํ๋ค.
'๐ Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์คํธ๋ฆผ(Stream) (0) | 2022.09.17 |
---|---|
[Java] ๋๋ค์๊ณผ ํจ์ํ ์ธํฐํ์ด์ค (0) | 2022.09.17 |
[Java] ์ ๋ค๋ฆญ๊ณผ ์์ธ ์ฒ๋ฆฌ (0) | 2022.09.16 |
[Java] ์ถ์ํ(Abstraction) (1) | 2022.09.07 |
[Java] ๋คํ์ฑ(Polymorphism) (0) | 2022.09.07 |