ch22 : Collections - List
Last updated
Last updated
๋ชฉ์ฐจ
๋ฐฐ์ด(array)๊ณผ ArrayList์ ์ฐจ์ด์ ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ์ /๊ฐ๋ณ์ ์ด๋ผ๋ ์ ์ด๋ค.
ArrayList๋ ์ ์ธ์์ ํฌ๊ธฐ๋ฅผ ์ ํด์ค ์ ์์ง๋ง, ์์๋ฅผ ์ถ๊ฐํ๋ฉด์ ํด๋น ํฌ๊ธฐ๊ฐ ๋์ ๊ฒฝ์ฐ ๋์ ์ผ๋ก ํฌ๊ธฐ๋ฅผ ๋๋ ค์ค๋ค. (ArrayList๋ ์ ์ธ์์ ํฌ๊ธฐ๋ฅผ ์ ์ ํด์ฃผ์ด๋ ๋๋ค.)
์ฐธ๊ณ โ ์ค์ ๋ก๋ ๊ฐ์ง๊ณ ์๋ ์ฉ๋์ด ๊ฝ ์ฐผ์ ๋, ์ฉ๋์ด ๊ธฐ์กด์ 1.5๋ฐฐ๋ฅผ ๋๋ฆฐ ์๋ก์ด ๋ฐฐ์ด์ ๊ธฐ์กด ๋ฐฐ์ด์ copyํ๋ ๊ฒ์ด๋ค.
๋ฉ์๋๋ฅผ ์ด์ฉํด์ ์์ ์ถ๊ฐ/์ญ์ /์กฐํ
์ ๋๋ฆญ์ผ๋ก ํ ๊ฐ์ง ํ์ ์ ์ง์ ํด์ ์ฌ์ฉํ๋ค.
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๋ฅผ ๋ง๋๋ ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ํด์ฃผ์ด์ผ ํ๋ค.
LIFO๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ Stack๋ณด๋ค ๋ ๋น ๋ฅธ ArrayQueue๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค. ๋ค๋ง, ์ค๋ ๋-์ธ์ดํํ๊ฒ ๊ตฌํํด์ผํ๋ ๊ฒฝ์ฐ Stack์ ์ฌ์ฉํด์ผ ํ๋ค.
์กฐํ
peek()
: ์กฐํํ๋ค.
pop()
: ์กฐํํ๊ณ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.
push(E item)
: ์ถ๊ฐํ๋ค
empty()
:๊ฐ์ฒด๊ฐ ๋น์๋์ง ํ์ธํ๋ค.