ArrayList()
ArrayList(Collectoin c)
ArrayList(int initialCapacity)
boolean add(Object o)
list1.add(new Integer(1)); //원칙 list1.add(1); //오토박싱
void add(int index, Object element)
boolean addAll(Collection c)
boolean addAll(int index, Collection c)
boolean remove(Object o)
컬렉션에서 저장한 객체 o를 삭제, 빈공간은 뒤에서 땡겨와서 채움.
변화가 있으면 true
👀👀👀 new Integer(1)
는 객체 생성한 것이 아닌가?? 해서 찾아본 남궁성님의 답변
-> 같은걸 삭제하는 것이다. Integer는 equals가 오버라이딩 되어 있어서 같은 값이면 같은 객체로 보기 때문에 삭제 되는 것이다.
Object remove(int index)
list1.remove(new Integer(1)); //boolean remove(Object o) ... list1.remove(1); //Object remove(int index) //오토박싱된 인티저요소 1이 아니라 인덱스 1이다!!!
boolean removeAll(Collection c)
void clear()
boolean retainAll(Collectoin c)
list1.retainAll(list2);
list2.removeAll(list1);
int indexOf(Object o)
list1.indexOf(new Integer(1)); //원칙 list1.indexOf(1); //오토박싱 list1.indexOf("1");
new Integer(1)
는 객체 생성한 것이 아닌가?? 해서 찾아본 남궁성님의 답변int lastIndexOf(Object o)
boolean contains(Object o)
boolean containsAll(Collection c)
list1.containsAll(list2);
Object get(int index)
Object set(int index, Object element)
특정 위치index에 있는 객체를 객체 element로 변경하기
List subList(int fromIndex, int toIndex)
List sub = list1.subList(1, 4); ArrayList list2 = new ArrayList(sub); //-> 를 한줄로 줄이면 ArrayList list2 = new ArrayList(list1.subList(1, 4));
Object[] toArray()
Object[] toArray(Object[] a)
boolean isEmpty()
void trim ToSize()
int size()
import java.util.ArrayList;
import java.util.*;
public class Ex11_01 {
public static void main(String[] args) {
//capacity=10인 ArrayList
ArrayList list1 = new ArrayList(10);
//원래 객체만 받는다!! 그런데 현재 java9부턴 deprecated
list1.add(new Integer(5));
list1.add(4);
list1.add(new Integer(2));
list1.add(new Integer(0));
list1.add(new Integer(1));
list1.add(new Integer(3));
//ArrayList(Collection c)
//subList는 읽기전용이라 활용하려면 새 객체로 받아줘야 한다!
/*List sub = list1.subList(1, 4);
ArrayList list2 = new ArrayList(sub);
를 줄인 것이다.*/ //index 1~3
ArrayList list2 = new ArrayList(list1.subList(1, 4));
print(list1, list2);
//**Collection은 인터페이스, Collections는 유틸 클래스!!!
Collections.sort(list1); //(오름차순)정렬
Collections.sort(list2); //**sort(List<T> list)
print(list1, list2);
//**컬렉션타입 list1이, 컬렉션타입 list2에 포함된 모든 객체들을 포함하는지
System.out.println("list1.containsAll(list2) : "+list1.containsAll(list2));
list2.add("B");
list2.add("C");
list2.add(3, "A"); //index3에 "A"추가, 뒤는 밀려난다.
print(list1, list2);
//변경
list2.set(3, "AA");
print(list1, list2);
//검색
list1.add(0, "1");
print(list1, list2);
System.out.println("indexOf(String \"1\") = "+list1.indexOf("1"));
System.out.println("indexOf(Integer 1) = "+list1.indexOf(1));
//**원래는 : list1.indexOf(new Integer(1)); 이다!!!
System.out.println("=====");
//삭제
list1.remove(new Integer(1)); //boolean remove(Object o)
print(list1, list2);
//**list1.remove(1) 오토박싱 1인 요소를 제거한다 가 안됨!!!
list1.remove(1); //Object remove(int index)
//***index 1 이 해당된다.
//따라서 위의 객체 방식으로 해야함!!
print(list1, list2);
//포함된 것 제외하고 삭제
System.out.println("list1.retainAll(list2) : "+list1.retainAll(list2));
print(list1, list2);
//포함된 것 삭제
list2.removeAll(list1);
print(list1, list2);
//위를 contains 와 반복문을 통해 삭제
System.out.println("list2.size() : "+list2.size());
for(int i=list2.size()-1; i>=0; i--) {
//(6-1=)5~0 총 6번 실행
if(list1.contains(list2.get(i))) //[5]부터
//***list1과 list2의 순서를 바꾸면 안된다!!
//contains(Object o): 컬렉션이 아닌 객체를 받기에 get()을 통해 하나하나 비교해야 함
list2.remove(i);
}
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 : [1, 0, 1, 2, 3, 4, 5]
list2 : [0, 2, 4, AA, B, C]
=====
indexOf(String "1") = 0
indexOf(Integer 1) = 2
=====
list1 : [1, 0, 2, 3, 4, 5]
list2 : [0, 2, 4, AA, B, C]
=====
list1 : [1, 2, 3, 4, 5]
list2 : [0, 2, 4, AA, B, C]
=====
list1.retainAll(list2) : true
list1 : [2, 4]
list2 : [0, 2, 4, AA, B, C]
=====
list2.size() : 6
list1 : [2, 4]
list2 : [0, AA, B, C]
=====