티스토리 뷰


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();

}

}



결과 : 
list1 : [5, 4, 2, 0, 1, 3]
list2 : [4, 2, 0]

list1 : [0, 1, 2, 3, 4, 5]
list2 : [0, 2, 4]

list1.containsAll(list2) : true
list1 : [0, 1, 2, 3, 4, 5]
list2 : [0, 2, 4, A, B, C]

list1 : [0, 1, 2, 3, 4, 5]
list2 : [0, 2, 4, AA, B, C]

list1.retainAll(list2) : true
list1 : [0, 2, 4]
list2 : [0, 2, 4, AA, B, C]

list1 : [0, 2, 4]
list2 : [AA, B, C]


'java,web study > 3주차 (7월 15일 ~21일)' 카테고리의 다른 글

VectorEx  (0) 2013.07.18
ArrayListEx2  (0) 2013.07.18
ArrayListEx1  (0) 2013.07.18
JDBC Program (Select)  (0) 2013.07.17
메모장 프로젝트 분석 결과  (0) 2013.07.17
Migration  (0) 2013.07.17
TAG
댓글
댓글쓰기 폼