2023.11.14 - [๐ฅ๏ธ ๋ฐฑ์๋/Java] - [ch.11] ์ปฌ๋ ์ ํ๋ ์์ํฌ ๊ฐ์ ๋ฐ List
void trimToSize(): ArrayList์ ์ฉ๋์ ํ์ฌ ๋ฆฌ์คํธ ํฌ๊ธฐ์ ๋ง๊ฒ ์กฐ์ ํฉ๋๋ค. ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ค์ด๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
void ensureCapacity(int minCapacity): ArrayList์ ์ต์ ์ฉ๋์ ์ง์ ํฉ๋๋ค. ํ์์ ๋ด๋ถ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ํ์ฅํ์ฌ ์ง์ ๋ ์ฉ๋์ ์์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
Object[] grow(int minCapacity): ๋ฆฌ์คํธ์ ์ฉ๋์ ํ์ฅํฉ๋๋ค. ์ฃผ๋ก ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ์๋ก์ด ์ฉ๋์ผ๋ก ๋ฐฐ์ด์ ํ์ฅํ๊ณ ๋ฐํํฉ๋๋ค.
int newCapacity(int minCapacity): ์๋ก์ด ์ฉ๋์ ๊ณ์ฐํฉ๋๋ค. ์ด๊ฒ๋ ์ฃผ๋ก ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
int hugeCapacity(int minCapacity): ๋งค์ฐ ํฐ ์ฉ๋์ ๋ฆฌ์คํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฉ์๋์ ๋๋ค. ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
int size(): ๋ฆฌ์คํธ์ ์ ์ฅ๋ ์์์ ๊ฐ์๋ฅผ ๋ฐํํฉ๋๋ค.
boolean isEmpty(): ๋ฆฌ์คํธ๊ฐ ๋น์ด์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํฉ๋๋ค.
boolean contains(Object o): ๋ฆฌ์คํธ๊ฐ ํน์ ์์๋ฅผ ํฌํจํ๊ณ ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํฉ๋๋ค.
int indexOf(Object o): ๋ฆฌ์คํธ์์ ํน์ ์์๊ฐ ์ฒ์์ผ๋ก ๋ํ๋๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค.
int indexOfRange(Object o, int start, int end): ์ง์ ๋ ๋ฒ์ ๋ด์์ ํน์ ์์๊ฐ ์ฒ์์ผ๋ก ๋ํ๋๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค.
int lastIndexOf(Object o): ๋ฆฌ์คํธ์์ ํน์ ์์๊ฐ ๋ง์ง๋ง์ผ๋ก ๋ํ๋๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค.
int lastIndexOfRange(Object o, int start, int end): ์ง์ ๋ ๋ฒ์ ๋ด์์ ํน์ ์์๊ฐ ๋ง์ง๋ง์ผ๋ก ๋ํ๋๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค.
Object clone(): ๋ฆฌ์คํธ์ ๋ณต์ฌ๋ณธ์ ์์ฑํ์ฌ ๋ฐํํฉ๋๋ค.
Object[] toArray(): ๋ฆฌ์คํธ์ ๋ชจ๋ ์์๋ฅผ ํฌํจํ๋ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
E get(int index): ์ง์ ๋ ์ธ๋ฑ์ค์ ์๋ ์์๋ฅผ ๋ฐํํฉ๋๋ค.
E set(int index, E element): ์ง์ ๋ ์ธ๋ฑ์ค์ ์ ์์๋ฅผ ์ค์ ํ๊ณ , ์๋ ์๋ ์์๋ฅผ ๋ฐํํฉ๋๋ค.
void add(E e, Object[] elementData, int s): ์์๋ฅผ ๋ฆฌ์คํธ์ ์ถ๊ฐํฉ๋๋ค. ์ฃผ๋ก ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
boolean add(E e): ์์๋ฅผ ๋ฆฌ์คํธ์ ๋์ ์ถ๊ฐํฉ๋๋ค.
void add(int index, E element): ์ง์ ๋ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
E remove(int index): ์ง์ ๋ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ๊ฑฐํ๊ณ , ๊ทธ ์์๋ฅผ ๋ฐํํฉ๋๋ค.
boolean equals(Object o): ๋ ๋ฆฌ์คํธ๊ฐ ๋์ผํ์ง ๋น๊ตํฉ๋๋ค.
boolean equalsRange(List<?> other, int from, int to): ๋ฆฌ์คํธ์ ํน์ ๋ฒ์๊ฐ ๋ค๋ฅธ ๋ฆฌ์คํธ์ ํด๋น ๋ฒ์์ ๊ฐ์์ง ๋น๊ตํฉ๋๋ค.
boolean equalsArrayList(ArrayList<?> other): ๋ ArrayList ๊ฐ์ฒด๊ฐ ๊ฐ์์ง ๋น๊ตํฉ๋๋ค.
void checkForComodification(final int expectedModCount): ์ดํฐ๋ ์ดํฐ ์์ฑ ์ดํ ๋ฆฌ์คํธ๊ฐ ๊ตฌ์กฐ์ ์ผ๋ก ์์ ๋์๋์ง ํ์ธํ๋ ๋ด๋ถ ๋ฉ์๋์ ๋๋ค. ์์ ํ์(modCount)๋ฅผ ์ฌ์ฉํ์ฌ expectedModCount์ ๋ฆฌ์คํธ์ modCount๋ฅผ ๋น๊ตํฉ๋๋ค. ๋ค๋ฅด๋ฉด ConcurrentModificationException์ ๋ฐ์์ํต๋๋ค.
int hashCode(): ๋ฆฌ์คํธ์ ํด์ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. ๋ฆฌ์คํธ์ ์๋ ์์๋ค์ ํด์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐ๋ฉ๋๋ค.
int hashCodeRange(int from, int to): ๋ฆฌ์คํธ์ ํน์ ๋ฒ์(from ์ธ๋ฑ์ค๋ถํฐ to ์ธ๋ฑ์ค๊น์ง)์ ์๋ ์์๋ค์ ํด์ ์ฝ๋๋ฅผ ๊ณ์ฐํฉ๋๋ค.
boolean remove(Object o): ๋ฆฌ์คํธ์์ ์ง์ ๋ ์์์ ์ฒซ ๋ฒ์งธ ๋ฐ์์ ์ ๊ฑฐํฉ๋๋ค. ๋ฆฌ์คํธ์ ์ง์ ๋ ์์๊ฐ ์์๋ค๋ฉด true๋ฅผ ๋ฐํํฉ๋๋ค.
void fastRemove(Object[] es, int i): ๋ฒ์ ๊ฒ์ฌ๋ modCount ์ ๋ฐ์ดํธ ์์ด ์ง์ ๋ ์ธ๋ฑ์ค์์ ์์๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ฑฐํ๋ ๋ด๋ถ ๋ฉ์๋์ ๋๋ค.
void clear(): ๋ฆฌ์คํธ์์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
boolean addAll(Collection<? extends E> c): ์ง์ ๋ ์ปฌ๋ ์ ์ ์๋ ๋ชจ๋ ์์๋ฅผ ๋ฆฌ์คํธ์ ๋์ ์ถ๊ฐํฉ๋๋ค.
boolean addAll(int index, Collection<? extends E> c): ์ง์ ๋ ์ปฌ๋ ์ ์ ์๋ ๋ชจ๋ ์์๋ฅผ ๋ฆฌ์คํธ์ ์ง์ ๋ ์์น์ ์ฝ์ ํฉ๋๋ค.
void removeRange(int fromIndex, int toIndex): ๋ฆฌ์คํธ์์ ํน์ ๋ฒ์์ ์์๋ฅผ ์ ๊ฑฐํฉ๋๋ค(fromIndex๋ถํฐ toIndex๊น์ง, toIndex๋ ํฌํจํ์ง ์์).
void shiftTailOverGap(Object[] es, int lo, int hi): ๋ฒ์์ ์์๊ฐ ์ ๊ฑฐ๋ ๋ ๋ด๋ถ ๋ฐฐ์ด์์ ์์๋ค์ ์ด๋์ํค๋ ๋ด๋ถ ๋ฉ์๋์ ๋๋ค.
String outOfBoundsMsg(int index): IndexOutOfBoundsException ๋ฉ์์ง๋ฅผ ํ์คํํ์ฌ ์์ฑํฉ๋๋ค.
boolean removeAll(Collection<?> c): ์ง์ ๋ ์ปฌ๋ ์ ์ ํฌํจ๋ ์์๋ค์ ๋ฆฌ์คํธ์์ ๋ชจ๋ ์ ๊ฑฐํฉ๋๋ค.
boolean retainAll(Collection<?> c): ์ง์ ๋ ์ปฌ๋ ์ ์ ํฌํจ๋ ์์๋ค๋ง ๋ฆฌ์คํธ์์ ์ ์งํฉ๋๋ค.
batchRemove(Collection<?> c, boolean complement, final int from, final int end): ์์๋ค์ ์ผ๊ด์ ์ผ๋ก ์ ๊ฑฐํ๊ธฐ ์ํ ๋ด๋ถ ๋ฉ์๋์ ๋๋ค. complement๊ฐ true์ด๋ฉด ์ง์ ๋ ์ปฌ๋ ์ ์๋ ํฌํจ๋ ์์๋ค๋ง ์ ์งํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ๊ฑฐํฉ๋๋ค.
void writeObject(java.io.ObjectOutputStream s): ArrayList์ ์ฌ์ฉ์ ์ ์ ์ง๋ ฌํ ๋ฉ์๋์ ๋๋ค. ์ด ๋ฉ์๋๋ ArrayList ๊ฐ์ฒด๋ฅผ ์คํธ๋ฆผ์ ์ง๋ ฌํํ์ฌ ๋์ค์ ์ญ์ง๋ ฌํํ ์ ์๋๋ก ์ํ๋ฅผ ๋ณด์กดํฉ๋๋ค.
void readObject(java.io.ObjectInputStream s): ๊ฐ์ฒด์ ์ญ์ง๋ ฌํ๋ฅผ ์ํ ๋ฉ์๋์ ๋๋ค. java.io.ObjectInputStream์ ์ฌ์ฉํด ์คํธ๋ฆผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ๊ฐ์ฒด๋ฅผ ๋ณต์ํฉ๋๋ค.
ListIterator<E> listIterator(int index): ์ง์ ๋ ์ธ๋ฑ์ค์์ ์์ํ๋ ListIterator๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ์ดํฐ๋ ์ดํฐ๋ ๋ฆฌ์คํธ๋ฅผ ์๋ฐฉํฅ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
Iterator<E> iterator(): ๋ฆฌ์คํธ๋ฅผ ์ํํ๊ธฐ ์ํ Iterator๋ฅผ ๋ฐํํฉ๋๋ค.
List<E> subList(int fromIndex, int toIndex): ๋ฆฌ์คํธ์ ์ผ๋ถ๋ฅผ ๋ํ๋ด๋ subList๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ๋ถ๋ถ ๋ฆฌ์คํธ๋ ์๋ณธ ๋ฆฌ์คํธ์ fromIndex๋ถํฐ toIndex๊น์ง์ ๋ฒ์๋ฅผ ํฌํจํฉ๋๋ค.
void forEach(Consumer<? super E> action): ๋ฆฌ์คํธ์ ๊ฐ ์์์ ๋ํด ์ง์ ๋ ์ก์ (ํจ์)์ ์ํํฉ๋๋ค. Consumer ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Spliterator<E> spliterator(): ๋ฆฌ์คํธ๋ฅผ ๋ณ๋ ฌ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ Spliterator ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
long[] nBits(int n): ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฉ์๋๋ก, ์ฃผ์ด์ง ํฌ๊ธฐ์ ๋นํธ ๋ฐฐ์ด์ ์์ฑํฉ๋๋ค.
void setBit(long[] bits, int i): ๋นํธ ๋ฐฐ์ด์์ ํน์ ์์น์ ๋นํธ๋ฅผ ์ค์ ํ๋ ๋ฉ์๋์ ๋๋ค.
boolean isClear(long[] bits, int i): ๋นํธ ๋ฐฐ์ด์์ ํน์ ์์น์ ๋นํธ๊ฐ ์ง์์ก๋์ง(0์ธ์ง) ํ์ธํ๋ ๋ฉ์๋์ ๋๋ค.
boolean removeIf(Predicate<? super E> filter): ์ง์ ๋ ์กฐ๊ฑด(ํํฐ)์ ๋ง๋ ์์๋ค์ ๋ฆฌ์คํธ์์ ์ ๊ฑฐํฉ๋๋ค. Predicate ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
void replaceAll(UnaryOperator<E> operator): ๋ฆฌ์คํธ์ ๋ชจ๋ ์์๋ฅผ ์ง์ ๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ฒดํฉ๋๋ค. UnaryOperator ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
void checkInvariants(): ArrayList์ ๋ด๋ถ ๋ถ๋ณ์ฑ์ ํ์ธํ๋ ๋ด๋ถ ๋ฉ์๋์ ๋๋ค. ์ผ๊ด์ฑ๊ณผ ์ค๋ฅ๋ฅผ ๊ฒ์ฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
void trimToSize(), void ensureCapacity(int minCapacity), Object[] grow(int minCapacity) , int newCapacity(int minCapacity), int hugeCapacity(int minCapacity), int size(), boolean isEmpty(), boolean contains(Object o), int indexOf(Object o), indexOfRange(Object o, int start, int end) , int lastIndexOf(Object o), lastIndexOfRange(Object o, int start, int end) , Object clone(), Object[] toArray(), E get(int index) , E set(int index, E element), void add(E e, Object[] elementData, int s), boolean add(E e), void add(int index, E element), E remove(int index), boolean equals(Object o), boolean equalsRange(List<?> other, int from, int to), boolean equalsArrayList(ArrayList<?> other) , void checkForComodification(final int expectedModCount), int hashCode() , int hashCodeRange(int from, int to), boolean remove(Object o) , void fastRemove(Object[] es, int i) , void clear(), boolean addAll(Collection<? extends E> c) , boolean addAll(int index, Collection<? extends E> c) , void removeRange(int fromIndex, int toIndex), void shiftTailOverGap(Object[] es, int lo, int hi) , String outOfBoundsMsg(int index), boolean removeAll(Collection<?> c), boolean retainAll(Collection<?> c), batchRemove(Collection<?> c, boolean complement, final int from, final int end) , void writeObject(java.io.ObjectOutputStream s), void readObject(java.io.ObjectInputStream s), ListIterator<E> listIterator(int index), Iterator<E> iterator(), List<E> subList(int fromIndex, int toIndex), void forEach(Consumer<? super E> action) , Spliterator<E> spliterator(), long[] nBits(int n), void setBit(long[] bits, int i), boolean isClear(long[] bits, int i), boolean removeIf(Predicate<? super E> filter), void replaceAll(UnaryOperator<E> operator) , void checkInvariants()
ArrayList ํด๋์ค๋ฅผ ๋ฏ์ด๋ณด๋ ๋ด๋ถ ํด๋์ค๊ฐ ๊ฝค๋ ์กด์ฌํ๋ค.
GPT๋ก ๊ณต๋ถํ๊ธฐ
ArrayList ํด๋์ค ๋ด์๋ ๋ช ๊ฐ์ง ์ค์ํ ๋ด๋ถ ํด๋์ค๋ค์ด ์์ต๋๋ค. ์ด๋ค์ ์ฃผ๋ก ArrayList์ ์๋์ ๋ณด์กฐํ๊ณ , ์ปฌ๋ ์ ํ๋ ์์ํฌ์์ ์ํธ์์ฉ์ ๊ฐ์ ํ๊ธฐ ์ํด ์กด์ฌํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ด๋ถ ํด๋์ค๋ค์ด ํฌํจ๋ฉ๋๋ค
Itr: ์ด๊ฒ์ ArrayList์ ๊ธฐ๋ณธ ์ดํฐ๋ ์ดํฐ ๊ตฌํ์ ๋๋ค. Iterator ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ฉฐ, ๋ฆฌ์คํธ์ ์์๋ฅผ ์์ฐจ์ ์ผ๋ก ์ํํ ์ ์๋๋ก ํฉ๋๋ค. ์ด ์ดํฐ๋ ์ดํฐ๋ fail-fast ๋์์ ์ํํฉ๋๋ค. ์ฆ, ์ดํฐ๋ ์ดํฐ ์์ฑ ํ ๋ฆฌ์คํธ๊ฐ ์์ ๋๋ฉด ConcurrentModificationException์ ๋ฐ์์ํต๋๋ค.
ListItr: ListIterator ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ก, Itr๋ฅผ ํ์ฅํฉ๋๋ค. ์ด ์ดํฐ๋ ์ดํฐ๋ ์๋ฐฉํฅ(์์ผ๋ก ๋ฐ ๋ค๋ก) ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ๋ฆฌ์คํธ์ ํน์ ์์น์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
SubList: ArrayList์ subList ๋ฉ์๋์ ์ํด ๋ฐํ๋๋ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํ๋ ๋ด๋ถ ํด๋์ค์ ๋๋ค. ์ด ํด๋์ค๋ ์๋ณธ ๋ฆฌ์คํธ์ ํน์ ๋ถ๋ถ์ ๋ํ ๋ทฐ๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋ถ๋ถ ๋ฆฌ์คํธ์ ๋ํ ๋ณ๊ฒฝ์ฌํญ์ ์๋ณธ ๋ฆฌ์คํธ์๋ ๋ฐ์๋ฉ๋๋ค.
ArrayListSpliterator: Spliterator ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ก, ArrayList์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ด ์คํ๋ฆฌํฐ๋ ์ดํฐ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ์ฌ ๋ณ๋ ฌ ์คํธ๋ฆผ ์์ ์ ํ์ฉํ ์ ์๊ฒ ํด์ค๋๋ค.
์ด ๋ด๋ถ ํด๋์ค๋ค์ ArrayList์ ๊ธฐ๋ฅ์ ํ์ฅํ๊ณ , Java์ ์ปฌ๋ ์ ํ๋ ์์ํฌ์์ ํตํฉ์ ๊ฐํํฉ๋๋ค. ๊ฐ ํด๋์ค๋ ํน์ ๋ชฉ์ ์ ๋ง๊ฒ ์ค๊ณ๋์์ผ๋ฉฐ, ArrayList๋ฅผ ๋ณด๋ค ์ ์ฐํ๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
'๐๏ธ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฉ์๋] Stack ํด๋์ค ๋ฉ์๋ (1) | 2023.11.30 |
---|---|
[๋ฉ์๋] Map ์ธํฐํ์ด์ค ๋ฉ์๋ ๋ชจ์ (0) | 2023.11.30 |
[์๋ฐ ์๊ณ ๋ฆฌ์ฆ ch.1] ๋ฌธ์์ด(3) (0) | 2023.11.12 |
[์๋ฐ ์๊ณ ๋ฆฌ์ฆ ch.1] ๋ฌธ์์ด(2) (0) | 2023.11.12 |
[์๋ฐ ์๊ณ ๋ฆฌ์ฆ ch.1] ๋ฌธ์์ด (0) | 2023.11.12 |