728x90

 

 

์ž๋ฐ”์˜ ๋ชจ๋“  ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ •๋ฆฌํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ์œ„์ฃผ๋กœ ์ƒ์† ๊ด€๊ณ„๋ฅผ ๊ทธ๋ ค๋ดค๋‹ค. (ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ์Œ) ํ•˜์ด๋ผ์ดํŠธ ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋งŒ ์กฐ๊ธˆ ๋” ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

๋‹น์—ฐํ•˜์ง€๋งŒ ํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์ด ์•„๋‹ˆ๋ฏ€๋กœ, ์œ„์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ๋ชจ๋‘ java.util ํŒจํ‚ค์ง€ ํ•˜์œ„์— ์กด์žฌํ•œ๋‹ค.

import java.util.*;

 

 

 


Array

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ ํด๋ž˜์Šค

๋ฐฐ์—ด์˜ ์ •๋ ฌ, ์ด์ง„ ํƒ์ƒ‰, ๋ฆฌ์ŠคํŠธ ๋ณ€ํ™˜ ๋“ฑ์˜ method๋ฅผ ์ง€์›ํ•œ๋‹ค.

Array์˜ sort()๋Š” Dual Pivot ํ€ต ์ •๋ ฌ์„ ์‚ฌ์šฉํ•œ๋‹ค. (๋‚ด๊ฐ€ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š”๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค๋Š” ๋œป์ด๋‹ค.)

asList()๋Š” Array๋ฅผ List๋กœ ๋ณ€ํ™˜ํ•˜๋Š” method์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ArrayList๊ฐ€ ์•„๋‹ˆ๋ผ ์กฐํšŒ๋งŒ ๊ฐ€๋Šฅํ•œ ์ •์  ๋ฆฌ์ŠคํŠธ ํด๋ž˜์Šค๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

 

 

 

 

 

List

Collection(object ์ง‘ํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค)๊ณผ Iterable(๋ฐ˜๋ณต์ž)๋ฅผ implementํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

๊ตฌํ˜„ ํด๋ž˜์Šค๋กœ๋Š” AbstractListAbstractSequentialListArrayListAttributeListCopyOnWritArrayListLinkedListRoleListRoleUnresolvedListStackVector๊ฐ€ ์žˆ๋‹ค.

 

List ๊ตฌํ˜„์ฒด์˜ ๋Œ€๋ถ€๋ถ„์€ ์„ ํ˜•ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•œ๋‹ค. ํšจ์œจ์ด ๊ทธ๋ฆฌ ์ข‹์ง€ ์•Š๋‹ค.

List๋Š” ์ฐธ์กฐ ์ž๋ฃŒํ˜•(ํด๋ž˜์Šค)์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ž๋ฃŒํ˜•์„ ํƒ€์ž…์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค.

List<Integer> list; // O
List<int> list; // X

 

List๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค. ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์›์†Œ๋ฅผ ์ค‘๋ณตํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

List<Integer> list = new ArrayList<Integer>();
list.add(0); // ์ฒซ๋ฒˆ์งธ ์›์†Œ
list.add(0); // ๋‘๋ฒˆ์งธ ์›์†Œ

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉด, ๋‘ ์›์†Œ๊ฐ€ ๋ชจ๋‘ id=45์ธ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

 

 

ArrayList

List์˜ ๊ตฌํ˜„ ํด๋ž˜์Šค

ํฌ๊ธฐ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์›์†Œ๋กœ null์„ ํ—ˆ์šฉํ•œ๋‹ค.

*๊ตฌ์กฐ์  ๋ณ€๊ฒฝ์ด ๋™๊ธฐํ™”๋˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค์ค‘ ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ์™ธ๋ถ€์—์„œ ๋™๊ธฐํ™” ์ž‘์—…์„ ํ•ด์ฃผ๊ฑฐ๋‚˜, wrapper๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

*๊ตฌ์กฐ์  ๋ณ€๊ฒฝ์ด๋ž€, ๋ฆฌ์ŠคํŠธ์— ์›์†Œ๊ฐ€ ์ถ”๊ฐ€/์‚ญ์ œ๋˜๋Š” ๋“ฑ ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค. ์›์†Œ์˜ ๊ฐ’ ๋ณ€๊ฒฝ์€ ๊ตฌ์กฐ์  ๋ณ€๊ฒฝ์ด ์•„๋‹ˆ๋‹ค.

List<> list = Collections.synchronizedList(new ArrayList<>());

 

 

 

 

 

 

Stack

Last-In-First-Out

Vector ํด๋ž˜์Šค์˜ ํ™•์žฅ: ํฌ๊ธฐ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊ตฌ์กฐ์  ๋ณ€๊ฒฝ์ด ๋™๊ธฐํ™”๋œ๋‹ค.

 

<์Šคํƒ์˜ ๋Œ€ํ‘œ์ ์ธ method>

stack.push(E item); // return item
stack.pop(); // return item, ์Šคํƒ์ด ๋นˆ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
stack.peek(); // return item, ์Šคํƒ์ด ๋นˆ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
stack.isEmpty(); // return boolean
stack.search(Object o); // return int(์œ„์น˜), -1์€ ํ•ด๋‹น ์›์†Œ ์—†์Œ

 

Stack์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค.

Stack ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, Deque์„ ์‚ฌ์šฉํ•˜์—ฌ LIFO ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ •์ ์ด๋‹ค.

Deque<T> stack = new ArrayDeque<T>();

 

 

 

 

 

Priority Queue

๋‚ด๋ถ€ ๊ทœ์น™์— ๋”ฐ๋ผ ์ •๋ ฌ๋˜๋Š” Heap ๊ตฌ์กฐ

PriorityQueue<T> pq = new PriorityQueue<>
(
    new Comparator<T> { 
        // Item์€ T ์ž๋ฃŒํ˜•์˜ ๋น„๊ต๊ฐ’
        public int compare(Item i1, Item i2){
                return (i1.val == i2.val)?
                Integer.compare(i1.val2, i2.val2):Integer.compare(i1.val, i2.val);
            }
     }
);

 

์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜๊ณ , null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋™๊ธฐํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ PQ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ, thread-safe ํ•œ PriorityBlockingQueue ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

 

 

 

 

HashMap

Key-Value ์Œ์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

๋น„์ •๋ ฌ, ์ค‘๋ณต ๋น„ํ—ˆ์šฉ

Key์™€ Value์˜ null์„ ํ—ˆ์šฉ

๊ตฌ์กฐ์  ๋ณ€๊ฒฝ์˜ ๋™๊ธฐํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ wrapper method๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

Map map = Collections.synchronizedMap(new HashMap<>());

 

 

 

 

 

Set

์ค‘๋ณต ๋น„ํ—ˆ์šฉ, ํ•˜๋‚˜์˜ null๋งŒ ํ—ˆ์šฉ

 

TreeSet

- Set์˜ ๊ตฌํ˜„ ํด๋ž˜์Šค๋กœ ์ •๋ ฌ๋จ

 

HashSet

- Set์˜ ๊ตฌํ˜„ ํด๋ž˜์Šค๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š์Œ

 

 

 

 

 


 ์ฐธ๊ณ ์ž๋ฃŒ 

 

๐Ÿ˜ฅ Array, ArrayList, List ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋งจ๋‚  ๋˜‘๊ฐ™์€ ๋ถ€๋ถ„ ๊นŒ๋จน์€ ์ด์œ ๊ฐ€ ์ด ๋ถ€๋ถ„ ์ •๋ฆฌ๋ฅผ ์•ˆ ํ•ด์„œ์˜€๋‹ค. ์•ž์œผ๋กœ๋Š” ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋ง์ž

728x90

+ Recent posts