๐ List (ArrayList)
์๋ ํ์ธ์, ์ด๋ฒ ์๊ฐ์๋ Java์ Collection Framework ์ค ํ๋์ธ List์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
List ์ธํฐํ์ด์ค๋ Collection ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ๊ณ ์์ต๋๋ค.
Collection ์ธํฐํ์ด์ค๋ ๋ฐ์ดํฐ์ ์ ์ฅ, ์ญ์ , ์ฝ์ ๊ธฐํ ๋ฑ๋ฑ์ ๋ก์ง์ ๋ณด๋ค ํธํ๊ฒ API๋ก ์์ฑํ์ฌ ๊ฐ๋ฐ์๊ฐ ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ๋ ๋์์ฃผ๋ ์๋ฐ์ ์ปฌ๋ ์ ํ๋ ์์ํฌ์ ๋๋ค.
์ ์ฌ์ง๊ณผ ๊ฐ์ด Collection์ collection hierarchy์ ์ต์์ ์ธํฐํ์ด์ค์ด๋ฉฐ ํ์ ์ธํฐํ์ด์ค์ธ List, Queue, Set ๋ฑ์ด ์ด๋ฅผ ์์๋ฐ๊ณ ์๊ณ , List ์ธํฐํ์ด์ค๋ ArrayList, Vector, LinkedList์ ๊ตฌํ์ฒด๋ค์ด ์กด์ฌํฉ๋๋ค.
์ ๋ List ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ก ๋๋ถ๋ถ ArrayList ํด๋์ค๋ฅผ ์ฌ์ฉ์ ํ๋๋ฐ์, ๋งค์ฐ ์ค๋์ ์ ์์ฑ๋ ๋ ๊ฑฐ์์ ์ฝ๋๋ ๊ฐ๋ Vector ํด๋์ค๋ ๋ดค์๋๋ฐ, ํ์ฌ๋ ๋๋ถ๋ถ ์ฌ์ฉํ์ง๋ ์๋ ๋ฏํฉ๋๋ค.
(์ Vector ํด๋์ค๋ฅผ ์ฌ์ฉํ์ง ์๋์ง ๊ถ๊ธํ์๋ค๋ฉด ํด๋น ํฌ์คํ ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์. ๐)
๊ธฐ์กด array์๋ ๋ค๋ฅด๊ฒ ๋์ ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด ์์ฑ ์ size๋ฅผ ํ ๋นํ์ง ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๋ฑ์ ์ฐ์ฐ์ ํธํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋ ์ฌ์ง์ฒ๋ผ ArrayList ํด๋์ค์๋ ๊ต์ฅํ ๋ง์ ๋ฉ์๋๋ค์ด ์กด์ฌํ๋๋ฐ์, ArrayList ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ณผ์ ๊ณผ ์ด๋ ํ ์๋ฆฌ๋ฅผ ํตํด ๋์ ๋ฐฐ์ด์ด ๊ฐ๋ฅํ์ง, ์ผ๋ถ ๋ฉ์๋๋ค์ ๋ด๋ถ ๋ก์ง ๋ฑ์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ArrayList๋?
Java 11 ๊ธฐ์ค ArrayList ํด๋์ค์ ์ฃผ์์๋ ์์ ๊ฐ์ด ์์ฑ์ด ๋์ด ์์ต๋๋ค.
์ฃผ์์ด ๊ฝค๋ ๊ธธ๊ธฐ์ ์ค์ํ ๋ด์ฉ๋ง ์์ฝํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฌ์ด์ฆ ์กฐ์ ์ด ๊ฐ๋ฅํ List ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด ๋ฐฐ์ด
- null์ ํฌํจํ ๋ชจ๋ ์์๋ค(elements)์ ํ์ฉ
- ๋ด๋ถ์ ์ผ๋ก list ์ ์ฅ ์ ์ฌ์ฉ๋๋ ๋ฐฐ์ด์ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํ๋ ๋ฉ์๋ ์ ๊ณต
- n๊ฐ์ ์์๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด O(n)์ ์๊ฐ์ด ํ์
- ๋ง์ ์์ ์์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ ArrayList์ size๋ฅผ ๋๋ ค ์ฌํ ๋น์ ํ์ํ ๋น์ฉ ๊ฐ์
- ๋๊ธฐํ๊ฐ ๋์ง ์์
- ๋๊ธฐํ๋์ง ์์ ์ ๊ทผ์ ์๋ฐฉํ๋ ค๋ฉด Collections.synchronizedList() ๋ฉ์๋ ์ฌ์ฉ
์ถ๊ฐ์ ์ผ๋ก, SynchronizedList ํด๋์ค์ ๊ฒฝ์ฐ Collections ํด๋์ค ๋ด๋ถ์ static์ผ๋ก ์ ์ธ์ด ๋์ด ์์ผ๋ฉฐ, ๋ด๋ถ ๋ก์ง์ ๋๋ถ๋ถ synchronized ๋ธ๋ญ์ผ๋ก ๊ตฌํ์ด ๋์ด ์์ต๋๋ค.
ArrayList Constructor
ArrayList ํด๋์ค์ ์์ฑ์๋ ์ ์ฌ์ง์ฒ๋ผ ์ด 3๊ฐ๊ฐ ์กด์ฌํฉ๋๋ค.
/**
* Default initial capacity.
*/
private static final int DEFAULT_CAPACITY = 10;
/**
* Shared empty array instance used for empty instances.
*/
private static final Object[] EMPTY_ELEMENTDATA = {};
/**
* Shared empty array instance used for default sized empty instances. We
* distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when
* first element is added.
*/
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
/**
* The array buffer into which the elements of the ArrayList are stored.
* The capacity of the ArrayList is the length of this array buffer. Any
* empty ArrayList with elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA
* will be expanded to DEFAULT_CAPACITY when the first element is added.
*/
transient Object[] elementData; // non-private to simplify nested class access
/**
* The size of the ArrayList (the number of elements it contains).
*
* @serial
*/
private int size;
/**
* Constructs an empty list with the specified initial capacity.
*
* @param initialCapacity the initial capacity of the list
* @throws IllegalArgumentException if the specified initial capacity
* is negative
*/
public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
this.elementData = EMPTY_ELEMENTDATA;
} else {
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
}
}
/**
* Constructs an empty list with an initial capacity of ten.
*/
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
/**
* Constructs a list containing the elements of the specified
* collection, in the order they are returned by the collection's
* iterator.
*
* @param c the collection whose elements are to be placed into this list
* @throws NullPointerException if the specified collection is null
*/
public ArrayList(Collection<? extends E> c) {
Object[] a = c.toArray();
if ((size = a.length) != 0) {
if (c.getClass() == ArrayList.class) {
elementData = a;
} else {
elementData = Arrays.copyOf(a, size, Object[].class);
}
} else {
// replace with empty array.
elementData = EMPTY_ELEMENTDATA;
}
}
Collection์ ์์๋ฐ๋ List<T>๋ ์ ๋ค๋ฆญ ํ์ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ํ์ ์ ๋ฐ์ ์ ์๋๋ก Object ํ์ ์ ๋ฐฐ์ด์ ์ฌ์ฉํฉ๋๋ค.
์ ์์ฑ์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ArrayList ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๋งค๊ฐ๋ณ์์ int ๊ฐ์ ์ค์ ํ๋ฉด ํด๋น ๊ฐ์ ์ ํจ์ฑ ๊ฒ์ฆ์ ํตํด Object ๋ฐฐ์ด ์์ฑ ์ length๋ฅผ ์ค์ ํ๊ณ , ๋งค๊ฐ๋ณ์์ ์๋ฌด๋ฐ ๊ฐ ์์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด Object ๋ฐฐ์ด์ด ์ด๊ธฐํ๊ฐ ๋ฉ๋๋ค.
(์ค์ ์ ์ฝ๋์์ elementData ๋ณ์์ ์ฃผ์์ ํ์ธํด๋ณด๋ฉด, ์ฒซ element๊ฐ added ๋ ๋ size๊ฐ DEFAULT_CAPACITY(10) ๊ฐ์ผ๋ก ํ์ฅ๋๋ค๊ณ ๋์์์ต๋๋ค.)
List<Integer> list1 = new ArrayList<>(5); // list size = 5
List<Integer> list2 = new ArrayList<>(); // list size = 0 (์ด๊ธฐํ ์ size = 10)
๋ฐ๋ผ์ List<Integer> list = new ArrayList<>(); ์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ฉด ์ต์ด list์ size๋ 0์ด๋ฉฐ, ์ดํ add์ ๊ฐ์ ์์ ์ ํ ๋ list์ size๊ฐ ํ ๋น์ด ๋ฉ๋๋ค. size๊ฐ ์ฌํ ๋น๋๋ ๊ณผ์ ์ ์๋์์ ์ถ๊ฐ์ ์ผ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ํ size ๋ณ์๋ ๋ฆฌ์คํธ์ ์ ์ฒด ์ฌ์ด์ฆ๊ฐ ์๋, ๋ฆฌ์คํธ๊ฐ ํฌํจํ๊ณ ์๋ ์์์ ๊ฐฏ์์ ๋๋ค.
ArrayList.add()
ArrayList์ ์์๋ฅผ ์ถ๊ฐํ๋ ๋ฉ์๋๋ก ์ฌ๋ฌ ๋ฉ์๋๊ฐ ์ค๋ฒ๋ก๋ฉ ๋์ด์์ต๋๋ค.
์ ์ฌ์ง์์ ๊ฐ์ฅ ์์ ์กด์ฌํ๋ ๋ฉ์๋์ธ add(E, Object[], int)๋ private ๋ฉ์๋๋ก ๋ด๋ถ์์๋ง ํธ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ๋ผ์ ์ค์ ๋ก๋ ์์๋ฅผ ์ถ๊ฐํ๋ add(E) ๋ฉ์๋์ ํน์ index์ ์์๋ฅผ ์ถ๊ฐํ๋ add(int, E) ๋ ๋ฉ์๋๋ง ๊ณต๊ฐ API์ ๋๋ค.
add() ๋ฉ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๋ง์ง๋ง ์์น์ ์์๋ฅผ ์ฝ์ ํ๊ณ , 486๋ผ์ธ์์ grow() ๋ฉ์๋๊ฐ list์ size๋ฅผ ์ฌํ ๋นํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋์ ๋๋ค.
์๋์ ๊ฐ์ ์์ ์ ํ ๊ฒฝ์ฐ, resize๊ฐ ์ด๋ ํ ์์ผ๋ก ์งํ๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(10); // list์ ์ต์ด size = 10
// list์ size๊ฐ 10์ด๋ฏ๋ก resize ์์ด ์ ๋ถ add
for (int i = 0; i < 8; i++) {
list.add(i);
}
// i = 2์ผ ๋(size = 10) list resize
for (int i = 0; i < 5; i++) {
list.add(i);
}
}
newCapacity() ๋ฉ์๋๊ฐ list์ newCapacity๋ฅผ ์ค์ ํ๋๋ฐ์, ๊ธฐ์กด ๋ฆฌ์คํธ ์ฌ์ด์ฆ์ 50%(1.5๋ฐฐ) ๋งํผ ์ค์ ํฉ๋๋ค.
- oldCapacity + (oldCapacity >> 1)
๋ฐ๋ผ์ ์์์ ๊ธฐ์กด list์ ์ฌ์ด์ฆ๋ 10์ด๋ฏ๋ก, 1.5๋ฐฐ์ธ 15๋ก ์ฌ์ด์ฆ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
์ newCapacity() ๋ฉ์๋๋ฅผ ํตํด ์๋ก์ด size๋ฅผ ํ ๋นํ ํ์๋ Arrays.copyOf() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด Object ๋ฐฐ์ด์ธ elementData ๋ณ์๋ฅผ ๋ณต์ฌํ์ฌ ์ฌ์ด์ฆ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
โป ์ ๋ ํ์์ ํญ์ size ์ค์ ์์ด ArrayList๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉ์ ํ์๋๋ฐ์, Arrays.copyOf() ๋ฉ์๋์ ๊ฒฝ์ฐ ๊ฒฐ๊ตญ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ ์์ ์ ์งํํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ์ผ๋ก ๋นํจ์จ์ ์ผ ๋ฏํฉ๋๋ค.
๋ฐ๋ผ์ ์ด๋ ์ ๋ ์ฌ์ด์ฆ๋ฅผ ๊ณ ๋ คํ์ฌ ์ต์ด ๊ฐ์ฒด ์์ฑ ์ ์ฌ์ด์ฆ๋ฅผ ํ ๋นํ๊ณ , ์ฌํ ๋นํ๋ ์์ ์ ์ค์ผ ์ ์๋๋ก ์ต๊ด์ ๋ค์ด๋๊ฒ ์ฑ๋ฅ์๋ ๋ฏธ๋นํ ์ง๋ผ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๐
ArrayList.set()
set() ๋ฉ์๋์ ๊ฒฝ์ฐ index์ ์์นํ ๊ฐ์ ์๋ก์ด ์์๋ก ๋ณ๊ฒฝํ๊ณ ๊ธฐ์กด ๊ฐ์ ๋ฆฌํดํ๋ ๋ฉ์๋์ ๋๋ค.
checkIndex๋ list์ ํฌ๊ธฐ๊ฐ ์๋, ํ์ฌ list์ ์กด์ฌํ๋ ์์์ ์ฌ์ด์ฆ(size)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํจ์ฑ ๊ฒ์ฆ์ ์งํํฉ๋๋ค.
๋ฐ๋ผ์ ์๋์ฒ๋ผ ์์๊ฐ ์กด์ฌํ์ง ์๋ index์ set() ํจ์๋ฅผ ํธ์ถํ๋ฉด IndexOutOfBoundException ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค.
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(10);
list.add(10);
list.add(15);
System.out.println(list.set(5, 35));
}
ArrayList.remove(int index)
remove(int index) ๋ฉ์๋๋ ๋งค๊ฐ๋ณ์์ index์ ์กด์ฌํ๋ ์์๋ฅผ ์ญ์ ํ๋ ๋ฉ์๋์ ๋๋ค.
์ ์ฌ์ง์์ 537๋ผ์ธ์ Object[] es ๋ณ์ ๋ณต์ฌ๋ ์์ ๋ณต์ฌ๋ฅผ ์งํํ๊ธฐ ๋๋ฌธ์ es ๋ณ์์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋๋ฉด ์๋ณธ ๋ฐฐ์ด์ธ elementData์ ๋ฐ์ดํฐ๋ ํจ๊ป ์์ ๋ฉ๋๋ค.
(Java์ ๊น์ ๋ณต์ฌ์ ์์ ๋ณต์ฌ์ ๋ํ ๋ด์ฉ ์ฐธ์กฐ)
์ค์ ์ญ์ ๊ฐ ์งํ๋๋ ๋ฉ์๋๋ fastRemove() ๋ฉ์๋์ธ๋ฐ์, ํด๋น ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
private void fastRemove(Object[] es, int i) {
modCount++;
final int newSize; // ์ญ์ ํ ํ ๋น๋ ๋ฆฌ์คํธ์ size
if ((newSize = size - 1) > i) // ์ญ์ ํ index๋ณด๋ค ํฐ ๋ฐ์ดํฐ๋ค์ด ์กด์ฌํ ๊ฒฝ์ฐ
System.arraycopy(es, i + 1, es, i, newSize - i); // ์ญ์ ํ ๋ฐ์ดํฐ์ ์ฐ์ธก ๋ฐ์ดํฐ๋ฅผ ์ข์ธก์ผ๋ก 1์ฉ ์ด๋
es[size = newSize] = null; // ๊ธฐ์กด์ ์กด์ฌํ๋ ๊ฐ์ฅ ๋ง์ง๋ง ์์ ์ ๊ฑฐ
}
/*
src - the source array
srcPos - starting position in the source array
dest - the destination array
destPost - starting position in the destination data
length - the number of array elements to be copied
*/
@HotSpotIntrinsicCandidate
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
fastRemove() ๋ฉ์๋๋ ๊ธฐ์กด elementData ๋ณ์๋ฅผ ๋ณต์ฌํ Object[] es ๋ณ์๋ก ์์ ์ ํ๋๋ฐ์, ์ญ์ ํ ์์ ์ดํ์ index๋ฅผ ์ข์ธก์ผ๋ก 1์ฉ ์ด๋ํ ํ ๋ง์ง๋ง ์์๋ ์ญ์ (null ์ฒ๋ฆฌ)ํฉ๋๋ค.
์ ๋ก์ง์ ์ฝ๋๋ง ๋ดค์ ๋ ์ ํํ ํ์ ์ด ๋์ง ์์ ์ค์ ํ ์คํธ๋ฅผ ํตํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(10);
list.add(10);
list.add(15);
list.add(20);
list.add(25);
list.add(30);
list.remove(1);
}
5๊ฐ์ ์์๋ฅผ ์ฝ์ ํ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค(๊ฐ์ 15)๋ฅผ ์ญ์ ํ๋ ์ฝ๋์ ๋๋ค.
์ ์ฝ๋์ System.arrayCopy() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- srcPos = 2 (๋ณต์ฌํ array์ ์์ index)
- destPos = 1 (๋ชฉ์ ์ง ๋ฐ์ดํฐ์ ์์ index)
- length = 3 (๋ณต์ฌํ ์์์ ์)
๋ฐ๋ผ์, ๋ ๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์ด 3๊ฐ๋งํผ ๋ณต์ฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ 20, 25, 30์ ์์๋ฅผ ์ข์ธก์ผ๋ก 1์ฉ ์ด๋ํฉ๋๋ค.
์ ์ฌ์ง์์ ์ข์ธก์ด ๊ธฐ๋ณธ ๋ฐ์ดํฐ์ด๊ณ , ์ฐ์ธก์ System.arrayCopy() ๋ฉ์๋๊ฐ ์งํ๋ ํ ๋ฐ์ดํฐ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ํ es[size = newsize] = null; ์ฝ๋๋ฅผ ํตํด ๋ง์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ฉด ์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค.
ArrayList.remove(Object o)
remove() ๋ฉ์๋๋ ์์๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ํด๋น ์์๋ฅผ ์ญ์ ํ๋ ๋ฉ์๋์ ๋๋ค.
์ฃผ์์ ์ดํด๋ณด๋ฉด ๋ฆฌ์คํธ์ ์์๊ฐ ์กด์ฌํ๋ฉด ์ต์ด ๋ฐ๊ฒฌ๋๋ ๊ฐ์ ์ญ์ ํ๊ฑฐ๋, ์กด์ฌํ์ง ์๋ค๋ฉด ์๋ฌด๋ฐ ๋ณ๊ฒฝ๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
์ญ์ ๊ฐ ๋๋ฉด true๋ฅผ, ์๋ฌด๋ฐ ๋ณ๊ฒฝ์ด ์ผ์ด๋์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํฉ๋๋ค.
์ญ์ ํ๋ ๋ก์ง์ list๋ฅผ ์ํํ๋ฉด์ ์ญ์ ํ๊ณ ์ ํ๋ ์์๊ฐ ์กด์ฌํ๋์ง ํ์ํ ํ ์กด์ฌํ๋ฉด ์์์ ์ดํด๋ดค๋ remove(int index) ๋ฉ์๋์ ๋์ผํ๊ฒ fastRemove() ๋ฉ์๋๋ฅผ ํธ์ถํ ํ true๋ฅผ, ์์๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด false๋ฅผ ๋ฆฌํดํฉ๋๋ค.
โป ์ฃผ์ํ ์ ์ List ํ์ ์ด Integer์ผ ๊ฒฝ์ฐ, index๋ฅผ ์๋ฏธํ๋ remove(int index) ๋ฉ์๋์ ์ค๋ณต๋๊ธฐ ๋๋ฌธ์ ์๋์ฒ๋ผ Object ํ์ ์ผ๋ก ํ๋ณํ์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(10);
list.add(10);
list.add(15);
list.add(20);
list.add(25);
list.add(30);
System.out.println(list.remove((Object) 15)); // true
System.out.println(list.remove((Object) 15)); // false
System.out.println(list.remove((Object) 22)); // false
}
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
EasyRandom - Java beans๋ฅผ ๋๋ค์ผ๋ก ์์ฑํด ์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (0) | 2023.01.27 |
---|---|
[Java DeepDive] - Map(HashMap) 1. ๊ฐ๋ , ํ๋, ์์ฑ์ (2) | 2022.11.27 |
[Java DeepDive] - String (2) ๋ด์ฅ ํจ์ (0) | 2022.10.23 |
[Java DeepDive] - String (1) ๋ฌธ์์ด ์์ฑ (0) | 2022.10.10 |
[Java, ๋์์ธ ํจํด] - ์ฑ๊ธํด ํจํด(Singleton Pattern) (4) | 2021.10.24 |
๋๊ธ