์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์ฐ์ฐ์
- StringBuilder
- stream
- ์คํ
- ๋ฐฑ์ค9012
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- ๋ฌธ์์ด
- ๋ฐฑ์ค1874
- java
- ์
- ๋ฐฐ์ด
- ์คํ์์ด
- ์๋ฐ
- ๋ฐ์ดํฐํ์
- ์คํธ๋ฆผ
- ๋ฐฑ์ค9093
- ์ฐ
- ๋
- StringBuffer
- ํ๋ฐฉ์ฟผ๋ฆฌ
- ์ฟ ํกERD
- ์ฟ ํกDB
- Today
- Total
Tech Log ๐ ๏ธ
230102 ๊ณต๋ถ์ผ์ง - ์ปฌ๋ ์ ํ๋ ์์ํฌ ๋ณธ๋ฌธ
์ปฌ๋ ์ ํ๋ ์์ํฌ
- ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ฒด๋ค์ ํจ์จ์ ์ผ๋ก ์ถ๊ฐ,์ญ์ ,๊ฒ์ํ ์ ์๋ ์ธํฐํ์ด์ค , ํด๋์ค
- ๋ํ์ ์ผ๋ก List, Map , Set ์ด ์๋ค.
* List ์ Map์ Collection ์ธํฐํ์ด์ค๋ก ์์ , Map ์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ด ์ด ๋๊ณผ๋ ๋ค๋ฅป๋ค.
๋ถ๋ฅ | ํน์ง | |
Collection | List | - ์์ ์ ์ง - ์ค๋ณต ๊ฐ๋ฅ |
Set | - ์์ x - ์ค๋ณต x |
|
Map | -ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์ํธ๋ฆฌ ์ ์ฅ - ํค๋ ์ค๋ณต ์ ์ฅ x |
List ์ปฌ๋ ์
- ๊ฐ์ฒด๋ฅผ ์ธ๋ฑ์ค๋ก ๊ด๋ฆฌํ๋ค.
- ArrayList , Vector , LinkedList ๋ฑ์ด ์ฌ์ฉ๋๋ค.
- ๋ฉ์๋๋ฅผ ํตํด ๊ฐ์ฒด์ถ๊ฐ , ๊ฐ์ฒด ๊ฒ์ , ์ญ์ ๋ฅผ ํ ์ ์๋ค.
ex) add(), contatains() , clear()
ArrayList
- ์ผ๋ฐ ๋ฐฐ์ด์ ์ฌ์ด์ฆ๋ฅผ ๋ฏธ๋ฆฌ ์ ํด ์ฃผ์ด์ผํ์ง๋ง , ArrayList๋ ์ ํ์์ด ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
- ๊ฐ์ฒด์ ๋ฒ์ง๋ฅผ ์ ์ฅํ๋ค. (๋์ผํ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ ๋์ผํ ๋ฒ์ง๊ฐ ์ ์ฅ๋๋ค!!)
- null ๋ ์ ์ฅ๊ฐ๋ฅ
- ํน์ ์ธ๋ฑ์ค์ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๋ฉด ๋ชจ๋ ์์ผ๋ก 1์ฉ ๋น๊ฒจ์ง๋ค.
- ์ ์ธ์ ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์๋ค.
List<E> list = new ArrayList<E>(); // E์ ์ง์ ๋ ํ์
์ ๊ฐ์ฒด๋ง ์ ์ฅ
List<E> list = new ArrayList<>(); // E์ ์ง์ ๋ ํ์
์ ๊ฐ์ฒด๋ง ์ ์ฅ
List list = new ArratList(); // ๋ชจ๋ ํ์
์ ๊ฐ์ฒด๋ฅผ ์ ์ฅ
- ์ฝ์ ์ญ์ ์ ์๋ฃ ์ ์ฒด๊ฐ ์ด๋ํ๊ธฐ ๋๋ฌธ์ ๋น๋ฒํ ์์ ์ด ๋ฐ์ํ๋ ๊ณณ์์๋ ์ ํฉํ์ง ์๋ค, (LinkedList ์ฌ์ฉ)
Vector
- ArrayList์ ๋์ผํ ๋ด๋ถ๊ตฌ์กฐ์ด์ง๋ง ๋๊ธฐํ๋ ๋ฉ์๋๋ก ๊ตฌ์ฑ๋์ด์๋ค. -> ๋ฉํฐ์ค๋ ๋๊ฐ ๋์์ ์คํ ๋ถ๊ฐ !!
- ์ ์ธ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
List<E> list = new Vector<E>(); // E์ ์ง์ ๋ ํ์
์ ๊ฐ์ฒด๋ง ์ ์ฅ
List<E> list = new Vector<>(); // E์ ์ง์ ๋ ํ์
์ ๊ฐ์ฒด๋ง ์ ์ฅ
List list = new Vector(); // ๋ชจ๋ ํ์
์ ๊ฐ์ฒด ์ ์ฅ
LinkedList
- ArrayList์ ๋ฌ๋ฆฌ LinkedList๋ ์ธ์ ๊ฐ์ฒด๋ฅผ ์ฒด์ธ์ฒ๋ผ ์ฐ๊ฒฐํด์ ๊ด๋ฆฌ
- ๋ฐ๋ผ์ ๊ฐ์ฒด ์ญ์ ์ ์ฝ์ ์ด ์ผ์ด๋๋ ๊ณณ์์ ์ฉ์ดํ๋ค.
List<E> list = new LinkedList<E>(); // E์ ์ง์ ๋ ํ์
์ ๊ฐ์ฒด๋ง ์ ์ฅ
List<E> list = new LinkedList<>(); // E์ ์ง์ ๋ ํ์
์ ๊ฐ์ฒด๋ง ์ ์ฅ
List list = new LinkedList(); // ๋ชจ๋ ํ์
์ ๊ฐ์ฒด๋ฅผ ์ ์ฅ
Set ์ปฌ๋ ์
- ์ ์ฅ ์์๊ฐ ์ ์ง๋์ง ์๊ณ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค !
- ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฉ์๋๊ฐ ์๋ค
HashSet
- ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํด๋์ค์ด๋ค.
- ๊ฐ์ฒด๋ฅผ ์ค๋ณต ์ ์ฅํ์ง ์๋๋ค.
๋ง์ฝ ๋ค๋ฅธ ๊ฐ์ฒด๋ผ๋ hash ์ฝ๋ ํจ์์ ๋ฆฌํด๊ฐ์ด ๊ฐ๊ณ equals ๋ฉ์๋๊ฐ true๋ฅผ ๋ฆฌํดํ๋ฉด ๋์ผํ ๊ฐ์ฒดํ๊ณ ํ๋จํ๊ณ ์ค๋ณต ์ ์ฅํ ์ง ์๋๋ค.(๋ฉ์๋ ์ฌ์ ์๋ฅผ ํตํด์ ๊ตฌํํ ์ ์๋ค)
Set ์ปฌ๋ ์ ์ ์ธ๋ฑ์ค๊ฐ ์๊ธฐ๋๋ฌธ์ ๊ฐ์ฒด๋ฅผ ํ๊ฐ์ฉ ๋ฐ๋ณตํด์ ๊ฐ์ ธ์์ผํ๋ค.
1. for๋ฌธ์ ํตํด ๊ฐ์ ธ์ค๊ธฐ
2. iterator() ๋ฉ์๋๋ก ๊ฐ์ ธ์ค๊ธฐ
iterator() ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
- hasnext() : ๊ฐ์ ธ์ฌ ๊ฐ์ฒด๊ฐ ์๋ ์ง ์๋ ค์ค๋ค.
- next() : ์ปฌ๋ ์ ์์ ํ๋์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์จ๋ค.
- remove() : next๋ก ๊ฐ์ ธ์จ ๊ฐ์ฒด๋ฅผ set ์ปฌ๋ ์ ์์ ์ ๊ฑฐํ๋ค.
iterator ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ ์ ์๋ค.
Iterator<E> iterator = set.iterator();
Map ์ปฌ๋ ์
- Map ์ปฌ๋ ์ ์ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์ํธ๋ฆฌ๋ฅผ ์ ์ฅ
- ํค๋ ์ค๋ณต ์ ์ฅํ ์ ์์ง๋ง ๊ฐ์ ์ค๋ณต์ ์ฅ ๊ฐ๋ฅ
- ๋ง์ฝ ๋์ผํ ํค๊ฐ ์ ์ฅ๋๋ฉด ๊ธฐ์กด ํค๊ฐ ์ญ์ ๋๋ค.
- ํค๋ฅผ ๋งค๊ฐ๊ฐ์ผ๋ก ๊ฐ๋ ๋ฉ์๋๊ฐ ๋ง๋ค.
ex) put(K key , V value) : ์ฃผ์ด์ง ํค์ ๊ฐ์ ์ถ๊ฐ , ์ ์ฅ์ด ๋๋ฉด ๊ฐ์ ๋ฆฌํด
boolean containsKey(Object key) : ์ฃผ์ด์ง ํค๊ฐ ์๋์ง ์ฌ๋ถ
HashMap
- Set์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค . (ํค๊ฐ์ ํํด์๋ง)
- hashcode ์ ๋ฆฌํด๊ฐ์ด ๊ฐ๊ณ equals ๊ฐ true๋ฅผ ๋ฆฌํดํ ๊ฒฝ์ฐ ์ค๋ณต์ ์ฅ์ ํ์ฉํ์ง ์๋๋ค.
- ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ ์ ์๋ค.
Map<K,V> map = new HashMap<K,V>();
Map<K,V> map = new HashMap<>();
Map map = new HashMap(); // ๋ชจ๋ ํ์
์ ํค์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ์ ์์ง๋ง ๊ฑฐ์ ์์ด๋ค.
HashTable
- HashMap๊ณผ ๋ค๋ฅธ ์ ์ ๋๊ธฐํ ๋ ๋ฉ์๋๋ก ๊ตฌ์ฑ๋์ด ์๋ค๋ ์ ์ด๋ค.
๋ฐ๋ผ์ ๋ฉํฐ์ค๋ ๋๊ฐ ๋์์ HashTable๋ฉ์๋๋ค์ ์คํํ ์ ์๋ค.
- ์ ์ธ์ HashMap ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ํ๋ฉด ๋๋ค.
ArrayList VS LinkedList
๊ฐ์ Set ์ปฌ๋ ์ ์ด์ง๋ง ์ด ๋์ ์ ํํ ์ด๋ป๊ฒ ๋ค๋ฅผ๊น ?
1. ์์๋ฐ๋ ํด๋์ค๊ฐ ๋ค๋ฅด๋ค.
- ArrayList ๋ AbstractList(๋ฐฐ์ด ํด๋์ค)๋ผ๋ ํด๋์ค๋ฅผ ์์๋ฐ์ง๋ง LinkedList๋ Abstarct Sequential List(์ฐ๊ฒฐ๋ฆฌ์คํธ ํด๋์ค) ๋ผ๋ ํด๋์ค๋ฅผ ์์ ๋ฐ๋๋ค.
2. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋ค.
- ArrayList๋ ์ญ ๋์ด์ง ๋ฐฐ์ด์ ํ์์ ์ทจํ๊ณ ์์ง๋ง , Linked List๋ ์๋ก ์๋ฃ์ ์ฃผ์๊ฐ์ผ๋ก ์ฐ๊ฒฐ๋์ด์ ธ ์๋ค.
- ์ด๋๋ฌธ์ Linked List๋ ๋ฐ์ดํฐ์ ์ฝ์ , ์ญ์ ์์ ๋ช๊ฐ์ ์ฐธ์กฐ์๋ง ๋ฐ๊พธ์ด์ฃผ๋ฉด ๋๋ฏ๋ก ๋น ๋ฅด๊ฒ ์ฐ์ฐ์ ์ํํ ์ ์๋ค.
3. ์ฅ๋จ์
- Linked List๋ ๋ฐ์ดํฐ์ ์ฝ์ ์ญ์ ์ ์ฉ์ดํ์ง๋ง Sequantial access ๋ง์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ๊ทผ์ด ๋ถ๊ฐ ๋ฅํ๋ค.
์ฐธ์กฐ์๋ฅผ ์ํ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ค
์ฌ์ค ์์ฐจ ์ ๊ทผ๋ ๋ฐ์ดํฐ๊ฐ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋์ด์ ธ ์๋ ArrayList๊ฐ ๋ ๋น ๋ฅด๋ค.
- Array List๋ ๋ฐ์ดํฐ์ ์ฝ์ ์ญ์ ๊ฐ ์๋์ ์ผ๋ก ๋๋ฆฌ์ง๋ง random access๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ํตํ ํ์์ ํ ์ ์๋ค.
์ฐธ๊ณ ์๋ฃ
https://www.nextree.co.kr/p6506/
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[java] ๋๋ค์ (0) | 2023.02.25 |
---|---|
[java] ์ค์ฒฉ ์ ์ธ๊ณผ ์ต๋ช ๊ฐ์ฒด (0) | 2023.02.23 |
221224 ๊ณต๋ถ์ผ์ง - ์ค์ฒฉ ์ ์ธ (1) | 2022.12.24 |
221213 ๊ณต๋ถ์ผ์ง - ์์ (0) | 2022.12.13 |
221211 ๊ณต๋ถ์ผ์ง - ํด๋์ค (0) | 2022.12.11 |