boolean add(Object o)
: 성공시 true, 실패 시 false 반환void add(int index, Object element)
: 저장 위치를 정해 줄 수 있다.boolean addAll(Collection c)
boolean addAll(int index, Collection c)
boolean remove(object o)
Object remove(int index)
: 특정 위치에 있는 객체를 삭제boolean removeAll(Collection c)
: 컬렉션에 있는 객체를 삭제void cleae()
: 모든 객체를 삭제int indexOf(Object o)
: 객체가 몇 번째에 저장되어 있는지 찾음. 못 찾으면 -1을 반환. 배열 앞에서부터 찾음 (순방향)int lastIndexOf(Object o)
: 배열 뒤에서부터 찾음 (역방향)boolean contains(Object o)
: 지정된 객체가 있는지, 존재하는지 물어봄.Object get(int index)
: 특정 위치에 있는 객체 반환Object set(int index, Object element)
: 특정 위치에 있는 객체를 변경List subList(int fromIndex, int toIndex)
: from~to 사이에 있는 객체를 일부 가져와서 새로운 List를 만든다.Object[] toArray()
:ArrayList의 객체 배열을 반환Object[] toArray(Object[] a)
boolean isempty()
: 비어있는지 확인void trimToSize()
: 빈 공간을 제거int size
: ArrayList의 저장된 객체의 갯수를 반환// 기본길이(용량, capacity)가 10인 ArrayList를 생성
ArrayList list1 = new ArrayList(10);
// ArrayList에는 객체만 저장 가능
// autoboxing에 의해 기본형이 참조형으로 자동 변환
list1.add(new Integer(5)); // 원래는 이렇게 써야 하지만
list1.add(5); // 이렇게 써도 자동으로 변환 된다.
ArrayList list1 = new Arraylist(10);
list1.add(5); // index[0]
list1.add(4); // index[1]
list1.add(2); // index[2]
list1.add(0); // index[3]
list1.add(1); // index[4]
list1.add(3); // index[5]
ArrayList list2 = new ArrayList(list1.subList(1,4));
[4, 2, 0]
이 된다.// ArrayList(Collection c)
ArrayList list2 = new ArrayList(list1.subList(1,4));
// 풀어쓰면 아래의 두 줄과 같다
List sub = list1.subList(1,4); // sub는 읽기만 가능 [4, 2, 0]
ArrayList list2 = new ArrayList(sub) // sub와 같은 내용의 ArrayList 생성
// list1과 list1를 정렬한다.
// Collection은 인터페이스, Collections는 유틸 클래스
Collections.sort(list1); // 출력값 [0, 1, 2, 3, 4, 5]
Collections.sort(list2); // 출력값 [0, 2, 4]
System.out.println(list1.containsAll(list2); // 출력값 : true
list2.add("B"); // [0, 2, 4, B]
list2.add("C"); // [0, 2, 4, B, C]
// 인덱스 번호 (위치)를 지정한 후 값을 추가
list2.add(3, "A"); // [0, 2, 4, A, B, C]
print(list2); // 출력값 : [0, 2, 4, A, B, C]
list2.set(3, "AA");
// index[3]에 있던 "A"를 "AA"로 변경
// 출력값 : [0, 2, 4, AA B, C]
// 기존 list1의 값 [0, 1, 2, 3, 4, 5]
list1.add(0, "1"); // 추가 하고 나서의 값 : [1, 0, 1, 2, 3, 4, 5]
// index[0]의 1은 문자열이고, indext[2]의 1은 숫자이다.
// indexOf()는 지정된 객체의 위치(인덱스)를 알려준다.
list1.indexof("1"); // 출력값 : 0
list1.indexof(1); // 출력값 : 2
// list1.indexof(new Integer(1)); 원래는 이렇게 써야함.
list1.remove(0); // 출력값 : [0, 1, 2, 3, 4, 5]
list1.remove(new Integer(1)); // 출력값 : [0, 1, 2, 3, 4, 5]
// 현재 list1의 배열이 [1, 0, 1, 2, 3, 4] 일 경우
list1.remove(1); // 인덱스가 1인 객체가 삭제 되므로 [1, 1, 2, 3, 4]가 된다.
list1.remove(new Integer(1)); // 이래야 숫자 1을 삭제 할 수 있다.
list1.remove("1"); // 이렇게 하면 문자열 1이 삭제된다.
// list1 = [1, 0, 1, 2, 3, 4, 5] list2 = [0, 2, 4, AA, B, C]
// retainAll()
System.out.println(list1.retainAll(list2)); // 출력값 : true
System.out.println(list1); // 출력값 : [0, 2, 4]
// contains()
for(int i = list2.size()-1; i >= 0; i--) {
if(list1.contains(list2.get(i)))
list2.remove(i);
}
System.out.println(list1,list2);
retainAll()
list1에서 list2와 겹치는 부분만 남기고 나머지는 삭제.contains()
for문 설명list2.get(0)
-> list2의 인덱스 0번째에 있는 값이 list1에도 있는지 묻는다.Chapter 9는 어디에.....?
[0, 1, 2, 3, 4]
라는 배열이 있을 때 인덱스 2번의 객체를 삭제(remove)하게 되면 [0, 1, 3, 4, 5]가 된다.
5
이다.5
이고 배열은 [0, 1, 3, 4, 4]
인 상태.data[size-1] = null
/ size는 5
, 배열은 [0, 1, 3, 4, null]
size--;
/ size는 4
, 배열은 [0, 1, 3, 4]
C:\Program Files\Java\jdk1.8.0_202\src.zip