티스토리 뷰
public class ArrayListEx1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList list1 = new ArrayList(10);
// 어레이리스트 생성
list1.add(new Integer(5));
list1.add(new Integer(4));
list1.add(new Integer(2));
list1.add(new Integer(0));
list1.add(new Integer(1));
list1.add(new Integer(3));
// 리스트에 인티저타입의 개체 추가
ArrayList list2 = new ArrayList(list1.subList(1, 4));
// 두 번째 리스트에는 리스트1의 부분을 가져옴
print(list1, list2);
Collections.sort(list1); // 오름차순 정렬
Collections.sort(list2); // 오름차순 정렬
print(list1, list2);
System.out.println("list1.containsAll(list2) : "
+ list1.containsAll(list2));
list2.add("B");
list2.add("C");
list2.add(3, "A");
// 리스트에 B와 C를 추가하고 인덱스 3의 위치에 A를 추가
// 결과적으로 중간에 삽입이 된다.
print(list1, list2);
list2.set(3, "AA"); // 인덱스 3의 멤버의 값을 AA로 바꿈
print(list1, list2);
System.out
.println("list1.retainAll(list2) : " + list1.retainAll(list2));
// retainAll 메소드 : 호출하는쪽의 객체 중에서 인자가 갖고 있는(함유하는) 인자만 남긴다.
print(list1, list2);
for (int i = list2.size() - 1; i >= 0; i--) {
if (list1.contains(list2.get(i)))
list2.remove(i); // 공통된 객체를 삭제하는 부분, 인덱스는 뒤에서부터 접근한다.
// 앞에서부터 접근하면 빈자리를 메꾸기 위해 자리 이동을 하기 때문에
// 올바른 결과를 얻을 수 없다. (앞에서부터 접근하면 2가 살아남게 된다.)
}
print(list1, list2);
}
static void print(ArrayList list1, ArrayList list2) {
System.out.println("list1 : " + list1);
System.out.println("list2 : " + list2);
System.out.println();
}
}
'java,web study > 3주차 (7월 15일 ~21일)' 카테고리의 다른 글
VectorEx (0) | 2013.07.18 |
---|---|
ArrayListEx2 (0) | 2013.07.18 |
JDBC Program (Select) (0) | 2013.07.17 |
메모장 프로젝트 분석 결과 (0) | 2013.07.17 |
Migration (0) | 2013.07.17 |