컬렉션 : 여러 객체를 모아놓음

컬렉션 프레임웍 : 다수의 객체를 다루기 위한 표준화된 프로그래밍

 

List -> 순서가 있는 데이터의 집합, 중복 가능

Set -> 순서가 없는 데이터의 집합 , 중복 불가 (HashSet, TreeSet)

Map -> 키와 값이 쌍으로 있는 데이터의 집합 , 키는중복x 값은 중복가능 (HashMap , TreeMap )

 

 

Vector와 ArrayList


vector와 arraylist의 구현원리는 동일.

vector는 자체적으로 동기화처리를 해 멀티쓰레드에 유리

ArrayList는 자체적으로 동기화처리를 하지 않음

 

*참조변수의 크기는 4byte ( 64bit jvm은 8byte)

 

ArrayList의 선언

ArrayList list = new ArrayList(10); //길이가 10인 객체배열

ArrayList의 원소 추가

list.add("java");
list.add("python");
list.add(124); //list.add(new Integer(333)); 원래는 이렇게 wrapper로 해야하지만 오토박싱으로 개선해줌
//컴파일시 자동적으로 코드가 실행됨
list.add(0,"hello");
//인덱스번호를 주면 인덱스 번호자리에 값이 저장됨

ArrayList의 원소인덱스 찾기

System.out.println(list.indexOf("java"));

 

ArrayList 원소 제거 ( remove의 반환타입은 boolean)

list.remove("java");

 

ArrayList 원소 값 바꾸기 ( set ( 인덱스 위치 , 바꾸고자하는 값) ) 

list.set(1,"bool");    //인덱스번호 1위치에 있는 값을 "bool"로 바꾼다..

 

ArrayList값 출력 (get(인덱스번호))

System.out.println(list.get(2));

 

ArrayList값 삭제

 

에러

for (int i=0 ; i<list.size(); i++){
    list.remove(i);
}
System.out.println(list);  //문제발생 원소가남음

성공

 

for (int i=list.size()-1 ; i>=0; i--){
    list.remove(i);
}
System.out.println(list); //성공 출력[]

 

 

**arraylist를 remove로 삭제할때 처음부터 삭제하면 다 삭제가되지않는 이유는

               arraylist는 삭제하면 뒷값들을 앞으로 복사하며 땡겨오기때문에 인덱스 0 을 삭제하면 

               인덱스1에있던값이 0으로간다.  그다음엔 인덱스1번을 삭제하는데 사실 맨 처음에 인덱스2번값을 삭제하는 것                   이기 때문에 몇가지 원소들이 남게된다.

 

 

Vector의 사용

vector의 크기 = 값이 저장된 크기

vector의 용량 = 배열의 길이

 

Vector v = new Vector(5);
v.add("1");
v.add("2");

v의 크기는 3 용량은 5

 

Vector의 공간 없애기

v.trimToSize(); //빈 공간을 없애 용량과 크기가 같아짐

 

Vector의 용량 늘리기

v.ensureCapacity(6); //용량을 6으로 늘림

 

Vector의 크기 늘리기

v.setSize(10); //크기를 10으로함

용량이 6인데 크기를 10으로했기때문에 자동적으로 새로운 객체가 생성되고 용량이 두배 늘어남..

 

Vector 초기화

v.clear();

그대로 용량은 2배늘어난 12임.

 

 

 

'IT 관련 > JAVA' 카테고리의 다른 글

자바 스택과 큐  (0) 2022.08.09
자바 ArrayList 와 LinkedList  (0) 2022.08.09
자바 형식화 , 포멧팅(formatting)  (0) 2022.08.03
자바(java) 날짜(Date,Calendar,time)  (0) 2022.08.03
자바 java.lang 패키지(2)  (0) 2022.07.26

+ Recent posts