주의할점
list1.remove(new Integer(111)); // 숫자타입은 이렇게!
// 제네릭을 이용하여 선언할 수 있다. -> 리스트의 형태를 지정해주는것이 제네릭
List list2 = new ArrayList();
list2.add("AAA");
list2.add("BBB");
list2.add("CCC");
list2.add("DDD");
list2.add("EEE");
//contains(비교객체) -> 리스트에 '비교객체'가 있으면 true, 없으면 false 리턴함.
System.out.println(list2.contains("DDD"));
System.out.println(list2.contains("ZZZ"));
// indexOf(비교객체) -> 리스트에서'비교객체'를 찾아 '비교객체'가 있는 index값을 반환함. (없으면 -1 반환함)
System.out.println("DDD의 index값 : " + list2.indexOf("DDD"));
System.out.println("ZZZ의 index값 : " + list2.indexOf("ZZZ"));
System.out.println("---------------------------------");
// 리스트의 삭제처리에 대하여..
for(int i=0; i < list2.size(); i++) { // 오류가 납니당 리무브때문에 해결법 뒤부터 지우면 된다.
list2.remove(list2.get(i));
}
System.out.println(list2);
System.out.println("삭제 후 list2의 개수 : " + list2.size());
위를 결과를 보면 삭제 후 데이터는 BBB, DDD 2개가 남는다. 그 이유는 1. 내용이 삭제되면 리스트가 왼쪽으로 당겨지고 반복횟수를 사이즈로 했기에 remove를 하면 사이즈가 줄어 반복횟수가 줄어들게된다. 뒤부터 지우거나 전체 삭제를 하면된다.
정렬
정렬과 관련된 Interface는 Comparable과 Comparator가 있다.
보통 객체 자체에 정렬기능을 부여하기 위해서는 Comparable을 구현하고, 정렬 기준을 별도로 구현하고 싶은 경우에는 Comparator를 구현하여 사용하면 된다.
정렬은 Collection.sort() 메서드를 이용하여 설정한다.
정렬은 기본적으로 '오름차순 정렬'을 수행한다.
compare() 메서드의 반환값을 결정하는 방법
-> 이 메서드가 양수를 반환하면 두 값의 순서가 바뀐다. (오름차순이 기본)
오름차순 정렬일 경우
-> 앞의 값이 크면 양수, 같으면0, 앞의 값이 작으면 음수를 반환하도록 구현한다.
Collections.sort(list); //오름차순 정렬하기
Collections.shuffle(list); // 데이터 섞기
Collections.sort(list, new Desc()); // 내림차순 정렬하기
@Override
public int compare(String str1, String str2) {
// TODO Auto-generated method stub
return str1.compareTo(str2) * -1;
}