์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- fontstyle
- ์ฑ์ฉํ์ ํ
- ์ฝ๋์
- menutab
- URN
- 2024-08-20
- ์ด๋ ธํ ์ด์
- di
- OOP
- OpenAPI
- 2024-08-21
- reflection
- Android Studio
- IOC
- Kotlin
- Factory Method Pattern
- swagger
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- FACTORY
- AndroidStudio
- datepicker
- ๊ธฐ์ด100์
- http method
- tcp
- uri
- udp
- ํ๋ IT&E
- Dialog
- url
- Python
dingdong coding
[JAVA ] List Interface ๋ณธ๋ฌธ
๋ฆฌ์คํธ์ ์์ ๊ฐ๋ ์ธ Collection์ ๋ํด ๋จผ์ ๋ณด๊ณ ์ค๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
[JAVA ] Collection
Collection Framework ? โข ๊ฐ์ฒด์ ๊ทธ๋ฃน โข ์๋ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํฉ๋๋ค. โข Collection ์ธํฐํ์ด์ค๋ List, Set, Queue ์ธํฐํ์ด์ค๊ฐ ํ์ฅ๋๋ ๋ฃจํธ ์ธํฐํ์ด์ค โข Java์์๋ ๋ชจ๋ Collecti..
dodokwon.tistory.com
LIST INTERFACE
โข ์ ์ฅ ์์๊ฐ ์๋(์ ์ง๋๋) ๋ฐ์ดํฐ์ ์งํฉ์ผ๋ก ๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉํฉ๋๋ค.
ex) Vector, ArrayList, LinkedList, Stack, Queue
1. ArrayList
โข ๋ด๋ถ์ ์ผ๋ก Array๋ฅผ ์ด์ฉํ์ฌ ์์๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ Index๋ฅผ ์ด์ฉํด ์์์ ๋น ๋ฅธ ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์กฐํ ์ฑ๋ฅ Good, ๋จ๋ฐฉํฅ ํฌ์ธํฐ ๊ตฌ์กฐ
โข ํ์ง๋ง ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ ๋ณ๊ฒฝ์ด ๋ณต์กํฉ๋๋ค. ( ์ ๋ฐฐ์ด ์์ฑ ํ ๊ธฐ์กด ์์ ์ฎ๊ธฐ๊ธฐ )
โข ์ด๋ ์์์ ์ถ๊ฐ ๋ฐ ์ญ์ ์์ ์๊ฐ์ด ๋งค์ฐ ๊ธธ์ด์ง๊ฒ ๋ฉ๋๋ค.
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
ArrayList<Integer> al = new ArrayList<Integer>();
for (int i = 1; i <= 5; i++)
al.add(i);
System.out.println(al);
al.remove(3);
System.out.println(al);
for (int i = 0; i < al.size(); i++)
System.out.print(al.get(i) + " ");
}
}
[1, 2, 3, 4, 5]
[1, 2, 3, 5]
1 2 3 5
2. LinkedList
โข ๋ด๋ถ์ ์ผ๋ก ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ์ฌ ์์๋ฅผ ์ ์ฅํฉ๋๋ค.
โข ์ ์ฅ๋ ์์๋ ๋น์์ฐจ์ ์ผ๋ก ๋ถํฌ๋๋ฉฐ Link๋ก ์ฐ๊ฒฐํ์ฌ ๊ตฌ์ฑํฉ๋๋ค.
- ๋ฐ์ดํฐ์ ์ฝ์ , ์ญ์ ์ ์์น ์ ๋ณด๋ง ์์ ํ๋ฏ๋ก ์ ์ฉ, ์๋ฐฉํฅ ํฌ์ธํฐ ๊ตฌ์กฐ
โข ๋จ์ผ ์ฐ๊ฒฐ๋ฆฌ์คํธ - ๋ค์ ์์์ ๋ํ ์ฐธ์กฐ๋ง ๊ฐ์ง๋ ๋ฆฌ์คํธ, ์ด์ ์์๋ก ์ ๊ทผ์ด ์ด๋ ต๋ค.
โข ์ด์ค ์ฐ๊ฒฐ๋ฆฌ์คํธ - ๋ค์์์์ ์ด์ ์์์ ๋ํ ์ฐธ์กฐ ๋ ๋ค ๊ฐ์ง๋ ๋ฆฌ์คํธ
์ด์ ๋ํด ์ ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ๊ฐ ์์ด ๋งํฌ๋ฅผ ์ฒจ๋ถํ์ต๋๋ค. ๐
[์๋ฃ๊ตฌ์กฐ] ์ฐ๊ฒฐ๋ฆฌ์คํธ(Linked List): ๋จ์ผ์ฐ๊ฒฐ๋ฆฌ์คํธ, ์ด์ค์ฐ๊ฒฐ๋ฆฌ์คํธ
๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๊ฐ๋ ๊ณผ ๊ตฌํ
velog.io
class GFG {
public static void main(String[] args){
LinkedList<Integer> ll = new LinkedList<Integer>();
for (int i = 1; i <= 5; i++)
ll.add(i);
System.out.println(ll);
ll.remove(3);
System.out.println(ll);
for (int i = 0; i < ll.size(); i++)
System.out.print(ll.get(i) + " ");
}
}
[1, 2, 3, 4, 5]
[1, 2, 3, 5]
1 2 3 5
3. Vector
โข ArrayList ํด๋์ค์ ๊ฐ์ ๋์์ ์ํํ๋ ํด๋์ค๋ก List ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ๋๋ค.
โข ArrayList์์ ์ฌ์ฉํ๋ ๋ฉ์๋๊ฐ ๊ฑฐ์ ๊ฐ์ผ๋ฉฐ ํ์ฌ๋ ๊ธฐ์กด์ฝ๋์์ ํธํ์ฑ์ ์ํด์๋ง ๋จ์์ผ๋ฏ๋ก ArrayList ํด ๋์ค๋ฅผ ์ฌ์ฉํ์.
๋จผ์ ์๋ฃ๊ตฌ์กฐ์์ ์ค๋ช ํ๋ Stack๊ณผ Queue์ ๋ํด ์์๋ณด๊ณ ์ค๋ฉด ์ข์ ๊ฒ๊ฐ์ต๋๋ค.
์ด์ ๋ํด ์ ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ ๋งํฌ๋ฅผ ์ฐธ์กฐํ๊ฒ ์ต๋๋ค.๐ ์คํ, ํ ๊ฐ๋ /๋น๊ต/ํ์ฉ์์
** ์๋ฃ๊ตฌ์กฐ : ์๋ฃ(Data)์ ์งํฉ์ด์, ์ ์ฅ๊ณต๊ฐ(Memory)์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์๋ ๊ท์น์ ๋ฐ๋ผ ํจ์จ์ ์ธ ์ฒ๋ฆฌ๋ฅผ ์ํํ ์ ์๋๋ก ๊ตฌ๋ถํ์ฌ ํํํ ๊ฒ.
** ํจ์จ์ ์ธ ์ฒ๋ฆฌ : ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ฝ์ , ์ญ์ , ํ์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ๋ํ ํจ์จ์ ์ธ ์ฒ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค. Big-O ๊ฐ๋ ๊ณผ ์๊ฐ๋ณต์ก๋์ ๋ํด ์๊ณ ์์ผ๋ฉด ๋ ์ดํด๊ฐ ์ฝ๋ค.
4. Stack
โข ์คํ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ ์ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด์ LIFO (Last In First Out)์ ์๋ฉํฑ์ ๋ฐ๋ฅด๋ ์๋ฃ๊ตฌ์กฐ
โข ๊ฐ์ฅ ๋์ค์ ์ ์ฅ๋( push ) ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ธ์ถ( pop )๋๋ ๊ตฌ์กฐ
โข Vector์ ํ์ ํด๋์ค๋ก ์์๋ฐ์ ์ ํ์ ์ธ ์คํ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ํด๋์ค ์ ๊ณต
import java.util.*;
public class GFG {
public static void main(String args[])
{
Stack<String> stack = new Stack<String>();
stack.push("Geeks");
stack.push("For");
stack.push("Geeks");
stack.push("Geeks");
Iterator<String> itr = stack.iterator();
while (itr.hasNext()) {
System.out.print(itr.next() + " ");
}
System.out.println();
stack.pop();
itr = stack.iterator();
while (itr.hasNext()) {
System.out.print(itr.next() + " ");
}
}
}
Geeks For Geeks Geeks
Geeks For Geeks
** ๊ด๋ จ ๋ฉ์๋ **
boolean empty() | ํด๋น ์คํ์ด ๋น์ด ์์ผ๋ฉด true๋ฅผ, ๋น์ด ์์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํจ. |
E peek() | ํด๋น ์คํ์ ์ ์ผ ์๋จ์ ์๋(์ ์ผ ๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋) ์์๋ฅผ ๋ฐํํจ. |
E pop() | ํด๋น ์คํ์ ์ ์ผ ์๋จ์ ์๋(์ ์ผ ๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋) ์์๋ฅผ ๋ฐํํ๊ณ , ํด๋น ์์๋ฅผ ์คํ์์ ์ ๊ฑฐํจ. |
E push(E item) | ํด๋น ์คํ์ ์ ์ผ ์๋จ์ ์ ๋ฌ๋ ์์๋ฅผ ์ฝ์ ํจ. |
int search(Object o) | ํด๋น ์คํ์์ ์ ๋ฌ๋ ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ ์์น์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํจ. ์ด๋ ์ธ๋ฑ์ค๋ ์ ์ผ ์๋จ์ ์๋(์ ์ผ ๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋) ์์์ ์์น๋ถํฐ 0์ด ์๋ 1๋ถํฐ ์์ํจ. |
5. Queue
โข ํ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ ์ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด์ FIFO (First In First Out)์ ์๋ฉํฑ์ ๋ฐ๋ฅด๋ ์๋ฃ๊ตฌ์กฐ
โข ๊ฐ์ฅ ๋จผ์ ์ ์ฅ๋( push ) ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ธ์ถ( pop )๋๋ ๊ตฌ์กฐ
โข ํ์ ์ธํฐํ์ด์ค๋ฅผ ์ง๊ฐ์ ์ ์ผ๋ก ๊ตฌํํ ํด๋์ค๋ ์๋นํ ๋ง์ต๋๋ค. ๊ทธ ์ค์์๋ Deque ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ LinkedList ํด๋์ค๊ฐ ํ์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋๋ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
** ๊ด๋ จ ๋ฉ์๋ **
boolean add(E e) | ํด๋น ํ์ ๋งจ ๋ค์ ์ ๋ฌ๋ ์์๋ฅผ ์ฝ์
ํจ. ๋ง์ฝ ์ฝ์ ์ ์ฑ๊ณตํ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ํ์ ์ฌ์ ๊ณต๊ฐ์ด ์์ด ์ฝ์ ์ ์คํจํ๋ฉด IllegalStateException์ ๋ฐ์์ํด. |
E element() | ํด๋น ํ์ ๋งจ ์์ ์๋(์ ์ผ ๋จผ์ ์ ์ฅ๋) ์์๋ฅผ ๋ฐํํจ. |
boolean offer(E e) | ํด๋น ํ์ ๋งจ ๋ค์ ์ ๋ฌ๋ ์์๋ฅผ ์ฝ์ ํจ. |
E peek() | ํด๋น ํ์ ๋งจ ์์ ์๋(์ ์ผ ๋จผ์ ์ ์ฅ๋) ์์๋ฅผ ๋ฐํํจ. ๋ง์ฝ ํ๊ฐ ๋น์ด์์ผ๋ฉด null์ ๋ฐํํจ. |
E poll() | ํด๋น ํ์ ๋งจ ์์ ์๋(์ ์ผ ๋จผ์ ์ ์ฅ๋) ์์๋ฅผ ๋ฐํํ๊ณ , ํด๋น ์์๋ฅผ ํ์์ ์ ๊ฑฐํจ. ๋ง์ฝ ํ๊ฐ ๋น์ด์์ผ๋ฉด null์ ๋ฐํํจ. |
E remove() | ํด๋น ํ์ ๋งจ ์์ ์๋(์ ์ผ ๋จผ์ ์ ์ฅ๋) ์์๋ฅผ ์ ๊ฑฐํจ. |
ํ์ต์ ๋ง์ ๋์์ด ๋ ๋งํฌ๋ฅผ ์ฐธ์กฐํ์ต๋๋ค. ๐
์ฐธ์กฐ ๋ฐ ์ถ์ฒ
'๐ฐJAVA > Basic' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ JAVA ] Garbage Collection (0) | 2022.07.01 |
---|---|
[JAVA ] Set Interface (0) | 2022.06.28 |
[JAVA ] Collection (0) | 2022.06.20 |
[ JAVA ] Optional (0) | 2022.06.15 |
[ JAVA ] Lambda (0) | 2022.06.14 |