- μμκ° μλ€.
- μ€λ³΅μ νμ©νλ€.
- μΈλ±μ€κ° μλ€.
Array | ArrayList | |
---|---|---|
μ μ | λμΌν νμ μ μμλ₯Ό μ μ₯νλ λμ μΌλ‘ μμ±λ κ°μ²΄ | Java Collection Frameworkμ ν΄λμ€ |
ν¬κΈ° | μ μ | λμ |
μ΄κΈ°ν μ | λ°°μ΄μ ν¬κΈ° μ 곡ν΄μΌ ν¨ | λ°°μ΄μ ν¬κΈ° μ 곡νμ§ μμλ λ¨ |
μ±λ₯ | λΉ λ¦ | λλ¦Ό |
μ μ₯ κ°λ₯ λ°μ΄ν° νμ | κ°μ²΄, primitive | κ°μ²΄ |
νμ μμ μ± | X | O(Generic) |
κΈΈμ΄ | length | size() |
ArrayList | LinkedArray | |
---|---|---|
μ μ₯ λ°©λ² | λμ λ°°μ΄μ μ¬μ© | μ΄μ€μΌλ‘ μ°κ²°λ 리μ€νΈλ₯Ό μ¬μ© |
λ°μ΄ν° μ‘°μ μ±λ₯ | λλ¦Ό | λΉ λ¦ |
ꡬνλ μΈν°νμ΄μ€ | List | List, Queue |
μ₯μ | μ μ₯, μ κ·Ό | λ°μ΄ν° μ‘°μ |
μμμ λ©λͺ¨λ¦¬ μμΉ | μ°μ | λΆμ°μ |
κΈ°λ³Έ μ©λ | 10 | X |
- (μΆκ° κ°λ₯ν) λΉ List λ§λλ λ°©λ²: new ArrayList()
- (μΆκ° λΆκ°ν) μ΄κΈ° μμλ₯Ό ν¬ν¨ν List λ§λλ λ°©λ²: Array.asList(λ°°μ΄ νΉμ μμ), List.of(μμ)
- (μΆκ° κ°λ₯ν) μ΄κΈ° μμλ₯Ό ν¬ν¨ν List λ§λλ λ°©λ²: new ArrayList(μ½λ μ )
- μΌλ°μ μΌλ‘ ArrayList/LinkedList ν΄λμ€ νμ μ List μΈν°νμ΄μ€ νμ μΌλ‘ μ μΊμ€ν νλ€. (λ€νμ±)
package lesson08;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class Ex01 {
public static void main(String[] args) {
// (μΆκ° κ°λ₯ν) λΉ List λ§λλ λ°©λ²
// μ
μΊμ€ν
: ArrayList ν΄λμ€ νμ
-> List μΈν°νμ΄μ€ νμ
List<String> list1 = new ArrayList<>();
System.out.println(list1); // []
// (μΆκ° κ°λ₯ν) μ΄κΈ° μμλ₯Ό ν¬ν¨ν List λ§λλ λ°©λ²
// μ
μΊμ€ν
: ArrayList ν΄λμ€ νμ
-> List μΈν°νμ΄μ€ νμ
List<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
List<Integer> list3 = new ArrayList<>(List.of(1, 2, 3, 4));
System.out.println(list2); // [1, 2, 3, 4]
System.out.println(list3); // [1, 2, 3, 4]
}
}
List | Set | Map | |
---|---|---|---|
μΆκ° | add(), addAll() | add(), addAll() | put(), putAll() |
μμ | remove(), removeAll(), clear() | remove(), removeAll(), clear() | remove(), keySet().removeAll(), values().removeAll(), clear() |
μμ | set() | μμ μμ ν μΆκ° | λμΌν keyλ‘ λ€μ μΆκ° |
μ½κΈ° | get() | λ°λ³΅λ¬Έ(Iterator, ν₯μλ forλ¬Έ) μ¬μ© | get() |
- μΆκ°: add(), addAll()
- μμ : remove(), removeAll(), clear()
- μμ : set()
- μ½κΈ°: get()
package lesson08;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Ex01 {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>(Arrays.asList("orange", "grape", "peach"));
// π© 1. μΆκ°
// 맨 λ€μ νλ μΆκ°
list1.add("apple");
list1.add("apple");
System.out.println(list1); // [apple, apple]
// νΉμ μΈλ±μ€μ νλ μΆκ°
list1.add(1, "banana");
System.out.println(list1); // [apple, banana, apple]
// 맨 λ€μ μ¬λ¬ κ° μΆκ°
list1.addAll(list2);
System.out.println(list1); // [apple, banana, apple, orange, grape, peach]
// νΉμ μΈλ±μ€μ μ¬λ¬ κ° μΆκ°
list1.addAll(2, List.of("grape", "kiwi"));
System.out.println(list1); // [apple, banana, grape, kiwi, apple, orange, grape, peach]
// π© 2. μμ
// μΈλ±μ€λ‘ νλ μμ
list1.remove(3);
System.out.println(list1); // [apple, banana, grape, apple, orange, grape, peach]
// κ°μΌλ‘ νλ μμ (μ²μ μ°Ύμ κ°)
// 리μ€νΈμ μμκ° intνμΌ κ²½μ° μμλ₯Ό λνΌ κ°μ²΄λ‘ κ°μΌ ν μ λ¬μΈμλ‘ μ λ¬ν΄μΌ νλ€.
list1.remove("grape");
System.out.println(list1); // [apple, banana, apple, orange, grape, peach]
// κ°μΌλ‘ μ¬λ¬ κ° μμ (ν΄λΉνλ λͺ¨λ κ°)
list1.removeAll(Arrays.asList("banana", "apple"));
System.out.println(list1); // [orange, grape, peach]
// μ 체 μμ
list2.clear();
System.out.println(list2); // []
// π© 3. μμ
list1.set(1, "cherry");
System.out.println(list1); // [orange, cherry, peach]
// π© 4. μ½κΈ°
String fruit = list1.get(2);
System.out.println(fruit); // peach
}
}
- 리μ€νΈ μν λ°©λ²μΌλ‘λ forλ¬Έ, Iterator, ν₯μλ forλ¬Έμ΄ μλ€.
1) for문
- forλ¬ΈμΌλ‘ μννλ©° μμ μ 리μ€νΈ μ¬μ΄μ¦μ μΈλ±μ€μ μ£Όμνλ€.
package lesson08;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Ex02 {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>(Arrays.asList("apple", "banana", "grape"));
for(int i = 0; i < fruits.size(); i++) {
System.out.println(fruits.get(i));
// bλ‘ μμνλ©΄ μ κ±°
if(fruits.get(i).startsWith("b")) {
fruits.remove(i);
i--; // βοΈ μΈλ±μ€ μ‘°μ
}
}
System.out.println(fruits);
}
}
2) Iterator
κ΄λ ¨ λ©μλ
- Iterator μΈν°νμ΄μ€
- hasNext(): νμ¬ μ»€μ μμΉμμ λ€μ μμκ° μλμ§ booleanμΌλ‘ λ°ν
- next(): νμ¬ μ»€μκ° κ°λ¦¬ν€λ μμ λ°ν ν λ€μ μμλ‘ μ»€μ μ΄λ. νΈμΆν λλ§λ€ 컀μκ° μ΄λνλ―λ‘ λ°λ³΅λ¬Έμμ ν λ²λ§ κΊΌλ΄λλ‘ μ£Όμνλ€.
- remove(): νμ¬ μ»€μκ° κ°λ¦¬ν€λ μμ μμ . νΈμΆ μ , λ°λμ next() λ©μλλ‘ μμμ μ κ·Όν΄μΌ νλ€. (IllegalStateException)
- List μΈν°νμ΄μ€
- iterator(): Listμ λν Interator κ°μ²΄ λ°ν
package lesson08;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class Ex02 {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>(Arrays.asList("apple", "banana", "grape"));
Iterator<String> iter = fruits.iterator();
while(iter.hasNext()) {
String fruit = iter.next();
System.out.println(fruit);
if(fruit.startsWith("b")) {
iter.remove();
}
}
System.out.println(fruits);
}
}
3) ν₯μ°λ forλ¬Έ
- μν μ€μ μμλ₯Ό μμ νμ§ μλλ€.
package lesson08;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Ex02 {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>(Arrays.asList("apple", "banana", "grape"));
for(String fruit : fruits) {
System.out.println(fruit);
}
System.out.println(fruits);
}
}
λ©μλλͺ | μ€λͺ | λ°νκ° |
---|---|---|
contains(κ°) | 리μ€νΈμ κ°μ΄ λ€μ΄μλμ§ νμΈ | boolean |
sort(Comparator.naturalOrder()) | μ€λ¦μ°¨μμΌλ‘ μ λ ¬ | void |
sort(Comparator.reverseOrder()) | λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬ | void |
isEmpty() | Listκ° λΉμ΄μλμ§ νμΈ | boolean |
size() | Listμ ν¬κΈ° | int |
toString() | Listμ λͺ¨λ μμλ₯Ό [κ°, κ°...]μ λ¬Έμμ΄ ννλ‘ λ°ν | String |
π https://www.javatpoint.com/difference-between-array-and-arraylist