1. ์ปฌ๋ ์ (์๋ฃ๊ตฌ์กฐ)
- ๋ฐฐ์ด์ ๊ณ ๋ํ์์ผ collection(์ปฌ๋ ์ )์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฐธ์กฐํ ์๋ฃ๊ตฌ์กฐ(๋ถ๋ฅํต)๋ฅผ ์ ๊ณตํ๋ค.
- ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ชจ๋ฅด์ง๋ง ๋ฐฐ์ด์ ์ฌ์ฉํด์ผ ๋ ๋๊ฐ ์๋ค. ๊ทธ๋ด ๋ collection ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฉ๋์ ๋ง๊ฒ ์ฌ์ฉ!
- ๊ฐ ์ข ๋ฅ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ ๋นผ๋ ๋ฐฉ๋ฒ์ด ๋ค ๋ค๋ฅด๋ค.
<์ข ๋ฅ๋ฅผ ๋จผ์ ์ดํด๋ณด์>
# ์์ฑ์ O: List, LinkedList, Stack (FILO), ์ฝ๊ฐ ํ๋ง๊ธ์ค ๊ฐ๋ค!!
#์์ฑ์ X: Queue (FIFO), Set (์งํฉ, ์ค๋ณตํ์ฉ X), Map (Key : Value) - ์ค๋ณต๋๋ ๊ฒ์ ๋งจ๋ง์ง๋ง์ ์๋ ํญ๋ชฉ์ผ๋ก ๋ฎ์ด์ฐ๊ธฐ ๋๋ค!
1. List - ์์๊ฐ ์๋ ๋ฐ์ดํฐ์ ์งํฉ, ๋ฐ์ดํฐ ์ค๋ณต ํ์ฉ
- Array์ ๋น์ทํ๋ list๋ ํฌ๊ธฐ๊ฐ ๊ฐ๋ณ์ ์ผ๋ก ๋์ด๋๋ ๋์ ๋ฐฐ์ด!
1-1. ์ ์ธ, ์์ฑ, ์ฌ์ด์ฆ ์ง์ ์ํด๋ ๋จ(์ด๊ธฐํ ์ํด๋ ๋จ.), add, set-์์ , remove ๋ฉ์๋ ์ฌ์ฉ.
ArrayList<Integer> intList = new intList<Integer>(); //1. ์ ์ธ ๋ฐ ์์ฑ!
intList.add(1) //2.๋ฆฌ์คํธ์ ๊ฐ ๋ฃ์ด์ฃผ๊ธฐ
//intList.get(1)ํ๋์ฉ ์กฐํ
//toString()ํด๋น ๋ฉ์๋๋ List๋ฐฐ์ด ๋ด๋ถ ๊ฐ ์ ์ฒด๋ฅผ [] ๋๊ดํธ๋ก ๋ฌถ์ด ๊ฐ๊ณ ์จ๋ค!
1-2 LinkedList, ์์ X
- ๋ฉ๋ชจ๋ฆฌ ๋จ๋ ๊ณต๊ฐ์ ์์ฒญํด ๊ฐ์ ์ฌ๊ธฐ์ ๊ธฐ ๋ฃ์ด๋๊ณ ์ค์ ๊ฐ์ด ์๋ ์ฃผ์๊ฐ์ผ๋ก ๋ชฉ๋ก์ ๊ตฌ์ฑํ๊ณ ์ ์ฅํ๋ค!
- ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ์์ ์ ๋น๊ต์ ๋น ๋ฅด๊ณ ์ ์ฒด๋ฅผ ์กฐํํ๋ ๊ฒ์ ๋น๊ต์ ๋๋ฆฌ๋ค.
2. Stack - ๊ฐ์ ์์ง์ผ๋ก ๋ฃ๊ณ ๋นผ๋ ๋ฐฉ์ FILO, ์ฒ์ ๋ค์ด๊ฐ ๊ฐ์ด ๊ฐ์ฅ ๋ง์ง๋ง์ ๋์จ๋ค. ํ๋ง๊ธ์ค๊ฐ๋ค~
- ๊ฐ์ push, peek, pop ๋ฃ๊ธฐ, ์กฐํ, ๋นผ๊ธฐ ๋ง ๊ฐ๋ฅํ๋ค!
- ์ด๋ ๊ฒ ๋ถํธํ๊ฒ ์ฐ๋ ์ด์ ๋? ๋ฐ์ดํฐ๋ฅผ ๋์ดํ๊ฑฐ๋ ์ค๋ณต์ฒ๋ฆฌ๋ฅผ ๋ง๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
2-1. ์ ์ธ ๋ฐ ์์ฑ ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ
Stack<Integer> intStack = new Stack<Integer>(); //1. ์ ์ธ ๋ฐ ์์ฑ
intStack.push(1);
intStack.push(2);
intStack.push(3); //๊ฐ ๋ฃ์ด์ฃผ๊ธฐ
while(!intStack.isEmpty()) //isEmpty()๋ฉ์๋, ๋ฐฐ์ด ๋ด๋ถ์ ๊ฐ์ด ์์ ๋(!์ ์จ์ ๋น์ด์์ง ์์ผ๋ฉด~)
//ํด๋น ๋ฐ๋ณต๋ฌธ ์คํ
{
S.o.println(intStack.pop()); //๊ฐ์ ๋ฃ์ด์ค ์์ ๋ฐ๋๋ก 3, 2, 1 ์์๋๋ก ์ถ๋ ฅ๋๋ค.
}
3. Queue - ํ์ชฝ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ ๋นผ๋ ๋ฐฉ์ FIFO, ์ฒ์ ๋ค์ด๊ฐ ๊ฐ์ด ์ฒ์์ ๋์จ๋ค.
- Stack๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก add, peek, poll ๋ฃ๊ธฐ, ์กฐํ, ๊บผ๋ด๊ธฐ๋ง ๊ฐ๋ฅ.
- ์์ฑ์ ์๋ ๊ป๋ฐ๊ธฐ๋ผ ๋ฐ๋ก ์์ฑ ๋ถ๊ฐ๋ฅ. LinkedList์ ๋์ ๋ฐ๊ธฐ!
3-1. ์ ์ธ ๋ฐ ์์ฑ ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ
Queue<Integer> intQueue = new LinkedList <Integer>(); //์ ์ธ ๋ฐ ์์ฑ
์ฌ์ฉ๋ฐฉ์์ ๋ฉ์๋ ์ด๋ฆ๋ง ๋ค๋ฅด๊ณ stack๊ณผ ๋์ผ.
4. Set - ๋ง์น ์งํฉ๊ณผ ๊ฐ์ ๋ชจ์! ๊ฐ๋ค์ ์์๊ฐ ์๊ณ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค. ์์X
- ์์๊ฐ ๋ณด์ฅ๋์ง ์๋ ๋์ ์ค๋ณต์ ํ๋ฝํ์ง ์๋๋ค!
- Set๋ Queue์ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ฑ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋์์ด ํ์ํจ. HashSet์ ์ด์ฉํ์!!
4-1. ์ ์ธ ๋ฐ ์์ฑ ์ฌ์ฉํด๋ณด๊ธฐ!
Set<Integer> intSet = new HashSet<Integer>(); //1. ์ ์ธ ๋ฐ ์์ฑ
intSet.add(1);
intSet.add(2);
intSet.add(3);
intSet.add(3);//์ค๋ณต๊ฐ ๋ฎ์ด์ฐ๊ธฐ ๋จ.
for( Integer value:intSet)// ๊ฐ์ value๋ผ๋ ๋ณ์๋ก ํ๋์ฉ ์กฐํํด์ ๋ฐฐ์ด ์ ์ฒด๋ฅผ ๋๋ค
{
soprintln(value) 1,2,3 ์ถ๋ ฅ 333์ผ๋ก ๋์ค์ง ์๋๊ฑด ์ค๋ณต์ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ!
}
intSet.contains(2)//ํด๋น ๊ฐ์ ํฌํจํ๋์ง ์กฐํํ๋ ๋ฉ์๋
//์ถ๋ ฅ์, boolean t.f ๊ฐ์ผ๋ก ์ถ๋ ฅ.
intSet.remove(1)// ํด๋น ๊ฐ ์ญ์ . ์ถ๊ฐํ๋ 1์ด ์ญ์ ๋๋ค.
5. Map - key:value ์์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ key๊ฐ์ unique ํด์ผ๋๋ค.
- ๋ง์ฝ ๋์ผํ key์ value ์ฌ๋ฌ๊ฐ๊ฐ ์๋ค๋ฉด ๋ง์ง๋ง์ ๋ฃ์ ๊ฐ์ผ๋ก ๋ฎ์ด์ฐ๊ธฐ ๋๋ค. ์์ X, ์ค๋ณตํ์ฉ X
- ๊ธฐ์กด ์๋ฒ์ผ๋ก ์กฐํํ๋ ์๋ฃ๊ตฌ์กฐ์๋ ๋ฌ๋ฆฌ key ๊ฐ์ผ๋ก value๊ฐ์ ์กฐํํ๋ค.
5-1. ์ ์ธ ์์ฑ ์ฌ์ฉ
- ์์ ๋ณธ ๋ฐฐ์ด๋ค๊ณผ ๋ฌ๋ฅธ ๋ฐ๋ณต๋ฌธ ()๊ดํธ ์์ ๊ธฐ์ตํ์! //keySet()๋ฑ์ฅ!
Map <String:Integer> intMap = new Hashmap<>(); //์ ์ธ ๋ฐ ์์ฑ. ์ ์ธ ๋ํ <key:value>
intMap.put("์ผ", 11);
intMap.put("์ด", 12);
intMap.put("์ผ", 13);
intMap.put("์ผ", 14);
intMap.put("์ผ", 15);
for(String key: intMap.keySet()){
s.o.println(key); // ์ ์ฒด key ๊ฐ ์ผ, ์ด, ์ผ ์ถ๋ ฅ๋จ! (์ค๋ณต key๊ฐ ๋ฌด์)
}
//value ๊ฐ ์ ์ฒด ์ถ๋ ฅ
for(String key: intMap.values()){
s.o.println(key); // 11, 12, 15 ์ถ๋ ฅ๋จ. key๊ฐ ๋์ผํ๋ค๋ฉด ๋ง์ง๋ง์ ์ถ๊ฐ๋ value ๊ฐ์ด ์ถ๋ ฅ
}
//get()
s.o.println.get("์ผ") // 15์ถ๋ ฅ
- ์ฒ์ ๋ฑ์ฅํ array ๋ฐฐ์ด์ ๋ฐ๋์ ๊ธธ์ด๋ฅผ ์ ์ธํด์ค์ผ ํ๋ค. ์ปฌ๋ ์ ์ ์๋ ๋ฐฐ์ด์ ์ด๊ธฐ ๊ธธ์ด๋ฅผ ๋ชฐ๋ผ๋ ์ ์ธ๊ณผ ์์ฑ์ด ๊ฐ๋ฅํ๋ค!
- ๋ฐฐ์ด ๋ด๋ถ ๊ฐ์ ์กฐํํ ๋ ๊ผญ ๋ฐ๋ณต๋ฌธ์ ์ด๋ค.
- ์๋ฃ๊ตฌ์กฐ๋ง๋ค ํน์ง์ด ๋ค๋ฅด๋ ์์ฑํ๋ ค๋ ํ๋ก๊ทธ๋จ์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ์ ์ ํํด์ ์ฌ์ฉํ๊ธฐ! ๊ทธ๋ฌ๋ ค๋ฉด ํน์ง์ ์ ์ดํดํด์ผ๊ฒ ์ฃฑ?!
- ๋๊ฒ ๋น์ทํด๋ณด์ด์ง๋ง ๊ฐ๊ฐ ๊ฐ์ ์ถ๊ฐ ์ญ์ ์กฐํ ๋ฑ์ ๋ฐฉ์์์ ์ฐจ์ด๊ฐ ์๊ณ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด ๊ฐ์ ์ถ๋ ฅํ ๋๋ ์กฐ๊ธ์ฉ ๋ฌธ๋ฒ์ด ๋ค๋ฅด๋ค!
์๋ฐ๋ ํ์ค์ธ๊ณ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋ณธ๋ฐ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ค์ด์ง ์ธ์ด์ด๋๊น ๋๋! ๋ด ์ฃผ๋ณ์ ์๋ ์ฌ๋ฌผ๋ค์ ํตํด ์ดํดํด๋ด์ผ ๊ฒ ๋ค!
'JavaStudy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL JAVA #3-2 (3) | 2023.12.01 |
---|---|
TIL JAVA #3-1 (0) | 2023.11.30 |
TIL JAVA #2-3 (0) | 2023.10.19 |
TIL JAVA #2-2 (3) | 2023.10.19 |
TIL JAVA #2-1 (0) | 2023.10.18 |