0. ๋ค์ด๊ฐ๋ฉฐ...
ํด๋น ๊ธ์ ArrayList<Integer>
์์ ์ํ๋ ์ซ์๋ฅผ ์ง์ฐ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ธ์ด๋ค. ArrayList.remove()
ํจ์๋ก ์ง์ฐ๋ฉด ๋์ง ์๊ฒ ๋ ์๊ฐํ ์ ์์ง๋ง .remove(int i)
๋ฅผ ๋ฃ์ผ๋ฉด, remove์ ์ค๋ฒ๋ก๋ฉ๋ ํจ์ ์ค ArrayList.remove(int index)
๊ฐ ํธ์ถ๋์ด, i
๋ฅผ index๋ก ๊ฐ์ง๋ Value๋ฅผ ArrayList์์ ์ญ์ ํ๋ค. ๋ฐ๋ผ์ ์๋ ์๋ํ 'i๋ผ๋ Value ์ง์ฐ๊ธฐ'๋ ์คํจํ๋ค.
1. ArrayList.remove(int index)
์์์ ์ค๋ช ํ๋ฏ์ด remove์ ์์ ์๋ฃํ int๋ฅผ ๋ฃ์ผ๋ฉด ํด๋น ์ธ์๋ฅผ index๋ก ๊ฐ์ง๋ Value๋ฅผ ArrayList์์ ์ญ์ ํ๋ค.
2. ArrayList.remove(Object o)
์ฐ๋ฆฌ๊ฐ ์ค์ i๋ผ๋ Value
๋ฅผ ์ญ์ ํ๊ณ ์ถ๋ค๋ฉด, ํด๋น ํจ์๊ฐ ํธ์ถ๋์ด์ผ ํ๋ค. ArrayList.remove(Object o)
๋ o
๋ผ๋ ๊ฐ์ฒด์ ๋๋ฑํ
๊ฐ์ฒด๋ฅผ ์ง์ฐ๋ ํจ์์ด๋ค. ์ด๋ ๋๋ฑ์ฑ ์ฌ๋ถ๋ Object o์ equals()
ํจ์๋ฅผ ํ์ฉํ๋ค. ์ฆ ์ง์ฐ๊ณ ์ ํ๋ ๊ฐ์ฒด๊ฐ Customํ ๊ฐ์ฒด์ด๋ฉด ์ ๋๋ก ๋ remove()
ํจ์๋ฅผ ์ฐ๊ธฐ ์ํด equals()
ํจ์๋ฅผ Overriding ํด์ผํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๊ฐ ArrayList<Integer>
์์ ์ง์ฐ๊ณ ์ ํ๋ value์ธ int i
๋ ์ด๋ป๊ฒ ์ง์ธ๊น? ๊ณ์ํด์ 1๏ธโฃ์ ํจ์๊ฐ ํธ์ถ๋ ํ
๋ฐ ๋ง์ด๋ค.
๋ต์ int i๋ฅผ Wrapper Class์ธ Integer์ ๊ฐ์ฒด๋ก ๋ณํํ๋ค.์ด๋ค.
์ด๋ ๊ฒ ํ๋ฉด ArrayList.remove(Integer i)
๊ฐ ๋ค์ด๊ฐ๊ฒ ๋๊ณ , ์ธ์๋ก WrapperClass์ ๊ฐ์ฒด๊ฐ ๋ค์ด๊ฐ์์ผ๋ก, 1๋ฒ์ด ์๋ 2๏ธโฃ์ remove๊ฐ ํธ์ถ๋๋ค. ๋ํ Integer class๋ ๋ด๋ถ์ equals๋ฅผ ์ ์ฅ๋ ์ซ์์ equals์ ์ธ์๋ก ๋ค์ด์จ ๊ฐ์ด ๊ฐ์์ง๋ก ํ๋ณํ๊ฒ overriding
์ด ๋์ด ์๋ค.
๋ฐ๋ผ์ int i๋ผ๋ value๋ฅผ ArrayList<Integer>
์์ ์ง์ฐ๊ธฐ ์ํด์๋ .remove(Integer i)
๋ฅผ ํ์ฉํ๋ค.