ch22 : Collections - List
๋ชฉ์ฐจ
Collections
๋ฐฐ์ด๊ณผ ArrayList์ ์ฐจ์ด์
๋ฐฐ์ด(array)๊ณผ ArrayList์ ์ฐจ์ด์ ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ์ /๊ฐ๋ณ์ ์ด๋ผ๋ ์ ์ด๋ค.
ArrayList๋ ์ ์ธ์์ ํฌ๊ธฐ๋ฅผ ์ ํด์ค ์ ์์ง๋ง, ์์๋ฅผ ์ถ๊ฐํ๋ฉด์ ํด๋น ํฌ๊ธฐ๊ฐ ๋์ ๊ฒฝ์ฐ ๋์ ์ผ๋ก ํฌ๊ธฐ๋ฅผ ๋๋ ค์ค๋ค. (ArrayList๋ ์ ์ธ์์ ํฌ๊ธฐ๋ฅผ ์ ์ ํด์ฃผ์ด๋ ๋๋ค.)
์ฐธ๊ณ โ ์ค์ ๋ก๋ ๊ฐ์ง๊ณ ์๋ ์ฉ๋์ด ๊ฝ ์ฐผ์ ๋, ์ฉ๋์ด ๊ธฐ์กด์ 1.5๋ฐฐ๋ฅผ ๋๋ฆฐ ์๋ก์ด ๋ฐฐ์ด์ ๊ธฐ์กด ๋ฐฐ์ด์ copyํ๋ ๊ฒ์ด๋ค.
ArrayList
๋ฉ์๋๋ฅผ ์ด์ฉํด์ ์์ ์ถ๊ฐ/์ญ์ /์กฐํ
์ ๋๋ฆญ์ผ๋ก ํ ๊ฐ์ง ํ์ ์ ์ง์ ํด์ ์ฌ์ฉํ๋ค.
ArrayList<String> list = ArrayList<String>();
ArrayList<String> list = ArrayList<>();
// new ๋ค์ <>๋ ํ์ ์๋ต ๊ฐ๋ฅ!๋ณดํต ํ ๊ฐ์ง ํ์ ๋ง ์ง์ ํ์ฌ ์ ์ฅํ๋ค. โ ๋ง์ฝ ์ฌ๋ฌ ํ์ ์ ํ๋์ ๊ฐ์ฒด์ ๋ด์ผ๋ ค๋ฉด DTO์ ์ ์ฅํ๋ ๊ฒ์ด ์ข๋ค.
์ ๋๋ฆญ์ผ๋ก ํ์ ์ง์ ํ๋ฉด, ๋ค๋ฅธ ํ์ ์ ์ถ๊ฐํ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์ปดํ์ผ ์์ ์ ํ์ ์ค์๋ฅผ ์๋ฐฉํ ์ ์๋ค.
์ถ๊ฐ
add()
:int ์ง์ ์ ํด๋น ์๋ฆฌ์ ์ถ๊ฐํ๊ณ ๋๋จธ์ง ์์๋ค์ ๋ค๋ก shift ํด์ค
addAll()
:๋ฆฌ์คํธ ์ ์ฒด ๋ณต์ฌ ์,
ArrayList<String> list2 = ArrayList<>(list1);
๋จ, ๋ฆฌ์คํธ ์ ์ฒด ๋ณต์ฌ ์
ArrayList<String> list2 = list1;
// ์ฃผ์๊ฐ์ด ๋ณต์ฌ๋จ, Shallow Copy โ ๋ฐ๋ผ์ Deep Copy๋ฅผ ์ํ ๊ฒฝ์ฐ addAll()์ด๋, ์์ฑ์๋ก ์ ์ฒด ๋ณต์ฌํ ๊ฒ
ํฌ๊ธฐ
๋ฐฐ์ด.size()
: ๋ค์ด๊ฐ์๋ ์์์ ๊ฐฏ์ // ๋น๊ต : String์ ๋ฌธ์์ด ๊ฐฏ์ ํ์ธํ๊ธฐ ์ํด์String๋ฐฐ์ด.length()
์ฌ์ฉ๋ฐฐ์ด.length
: ๋ฐฐ์ด์ ๋ฃ์ ์ ์๋ ์์์ ๊ฐฏ์
์กฐํ
get(int index)
: ๋งค๊ฐ๋ณ์ ์์น์ ๋ฐ์ดํฐ ์กฐํindexOf(Object o)
: ๋งค๊ฐ๋ณ์๋ก ๋์ด์จ ๊ฒ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ์์น
ArrayList โ ๋ฐฐ์ด๋ก
toArray(T[] a)
: ArrayList๋ฅผ ๋งค๊ฐ๋ณ์ T ํ์ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ๋ค.
์ญ์
clear()
: ๋ชจ๋ ์ญ์ remove(int index)
: ๋งค๊ฐ๋ณ์์ ์์น์ ์๋ ๋ฐ์ดํฐ ์ญ์ remove(Object o)
: ๋งค๊ฐ๋ณ์์ ๊ฐ์ ์ฒซ๋ฒ์งธ ๋ฐ์ดํฐ ์ญ์ removeAll(Collection<?> c)
: ๋งค๊ฐ๋ณ์๋ก ๋์ด์จ ์ปฌ๋ ์ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ค ๋ชจ๋ ์ญ์
์ถ๊ฐ๋ก Vector๋ ArrayList์ ๋น์ทํ์ง๋ง, Thread-safeํ๋ค๋ ํน์ง์ด ์๋ค. ์ค๋ ๋-์ธ์ดํํ ArrayList๋ฅผ ๋ง๋๋ ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ํด์ฃผ์ด์ผ ํ๋ค.
Stack
LIFO๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ Stack๋ณด๋ค ๋ ๋น ๋ฅธ ArrayQueue๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค. ๋ค๋ง, ์ค๋ ๋-์ธ์ดํํ๊ฒ ๊ตฌํํด์ผํ๋ ๊ฒฝ์ฐ Stack์ ์ฌ์ฉํด์ผ ํ๋ค.
์กฐํ
peek()
: ์กฐํํ๋ค.pop()
: ์กฐํํ๊ณ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.push(E item)
: ์ถ๊ฐํ๋คempty()
:๊ฐ์ฒด๊ฐ ๋น์๋์ง ํ์ธํ๋ค.
Last updated