장점
단점
ArrayList
import java.util.ArrayList;
import java.util.List;
public class ex_ArrayList {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
// 리스트에 값 저장
list1.add(new Integer(5));
list1.add(4);
list1.add(2);
list1.add(0);
list1.add(1);
list1.add(3);
System.out.println(list1);
// list1의 1번 원소부터 3번 원소까지 저장
List<Integer> list2 = new ArrayList<>(list1.subList(1,4));
System.out.println(list2);
}
}
package ch11_컬렉션_프레임워크2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ex_ArrayList {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
// 리스트에 값 저장
list1.add(new Integer(5));
list1.add(4);
list1.add(2);
list1.add(0);
list1.add(1);
list1.add(3);
System.out.println(list1);
// list1의 1번 원소부터 3번 원소까지 저장
List<Integer> list2 = new ArrayList<>(list1.subList(1,4));
System.out.println(list2);
Collections.sort(list1); // list1과 list2를 정렬한다.
Collections.sort(list2); // Collections.sort(List l)
print(list1, list2);
}
static void print(List list1, List list2){
System.out.println("list1:"+list1);
System.out.println("list2:"+list2);
}
}
static void print(List list1, List list2){
System.out.println("list1:"+list1);
System.out.println("list2:"+list2);
}
static void print 사용한 이유는 List라는 인터페이스를 만들어 불필요한 노가다를 줄이고 코드의 재사용성을 높이기 위해서이다.
System.out.println("list1.containsAll(list2):" + list1.containsAll(list2));
package ch11_컬렉션_프레임워크2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ex_ArrayList {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
// 리스트에 값 저장
list1.add(new Integer(5));
list1.add(4);
list1.add(2);
list1.add(0);
list1.add(1);
list1.add(3);
System.out.println(list1);
// list1의 1번 원소부터 3번 원소까지 저장
List<Integer> list2 = new ArrayList<>(list1.subList(1,4));
// System.out.println(list2);
// list1은 list2의 모든 원소를 포함하고 있는가?
System.out.println("list1.containsAll(list2):" + list1.containsAll(list2));
}
static void print(List list1, List list2){
System.out.println("list1:"+list1);
System.out.println("list2:"+list2);
}
}
인덱스를 뒤에서부터 돌려야 삭제에 영향을 받지 않음
list1에서 list2에 포함된 객체들을 삭제한다.
인덱스를 뒤에서부터 돌려야 삭제에 영향을 받지 않음
for (int i = list1.size() - 1; i >= 0; i--) {
if (list2.contains(list1.get(i)))
list1.remove(i);
}
package ch11_컬렉션_프레임워크2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ex_ArrayList {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
// 리스트에 값 저장
list1.add(new Integer(5));
list1.add(4);
list1.add(2);
list1.add(0);
list1.add(1);
list1.add(3);
System.out.println(list1);
// list1의 1번 원소부터 3번 원소까지 저장
List<Integer> list2 = new ArrayList<>(list1.subList(1, 4));
Collections.sort(list1); // list1과 list2를 정렬한다.
Collections.sort(list2); // Collections.sort(List l)
// list1에서 list2에 포함된 객체들을 삭제한다.
// 인덱스를 뒤에서부터 돌려야 삭제에 영향을 받지 않음
for (int i = list1.size() - 1; i >= 0; i--) {
if (list2.contains(list1.get(i)))
list1.remove(i);
}
print(list1, list2);
}
static void print(List list1, List list2){
System.out.println("list1:"+list1);
System.out.println("list2:"+list2);
}
}