(13) 컬렉션 프레임워크 (ArrayList)
0623
컬렉션 프레임워크
ArrayList
객체화
ArrayList 식별자 = new ArrayList();리스트 객체 생성
System.out.println( 식별자 ); 출력을 해본다면
- 해시코드(주소값)가 안나옴
- toString이 오버라이딩 되어있다
- AbstractCollection 이 ArrayList 의 부모이다
여러 ArrayList의 메소드를 사용해보자
메소드 | 결과물 |
. add( Object e ); | 넣은 값을 순서대로 저장함 ( Object 클래스로 ) |
. clear( ); | ArrayList의 요소를 모두 삭제 |
. get( int index ); | 인트값의 index번호값을 가져옴 ( Object 클래스로 ) |
remove( int index ); | 인트값의 index번호값을 삭제함 |
. isEmpty | List가 비어있다면 true 값이 들어있다면 false |
. size( ); | 안의 요소의 개수를 알려줌 |
. containsKey(key); |
key값과 값이 존재하니? 존재해 ture; / 없어 false; |
더 많은 메소드들이 존재하지만 그건 추가 공부하는걸로
배열 [ ] 은
같은타입 / 관련 / 일정한 크기 인것이 특징인데
ArrayList 는
자료형자유 / 크기자유 이기때문에
int만 다루는 상황에서 double값을 저장하는 것을 막을 수가 없음
그래서 처음부터 원하는타입만 넣을 수 있도록 "강제" 시킬수 있음
" < > "바로 이것
제네릭이라고 부르고 사용법은
ArrayList < 자료형 > 식별자 = new ArrayList < 자료형 > ( ) ;
으로 객체화 한다면 해당 자료형의 값만 저장할 수 있게 된다
Set
집합이라고 생각하면된다
중복된 데이터를 허용 X순서 X
순서가 존재하긴하지만 알 필요는 없다
객체화 방법은
Set 식별자 = new HashSet( );
Set은 abatract 클래스(추상클래스)이기 때문에
객체화 할 수 없다! 그래서 Set의 자식인
HashSet ( ) 을 이용하여 객체화 시킨다
Set의 특징으로는 중복값을 저장하게되면 해당 값은 저장되지않는다
저장하는 순서가 랜덤이다 (순서 로직은 있으나 크게 상관없다 하셨다)
위에 있는 메소드들을 사용할 수 있지만
Set객체.remove( 값 ) 을 넣게되면
값이 존재하다면 true, 존재하지않는다면 false로 반환된다
Map
객체화HashMap 식별자 = new HashMap();
데이터들을 다룰때에는
A데이터와 B데이터를 구분하기위해 값이 반드시 필요하다!
구분하기위한 키값 = 기본키 = PK (Primary Key ) = ID = 고유한값 이다
Map은 저장을 할때
값을 찾을수 있게해주는 " 키 값 " 을 함께 저장한다
맵은 .add로 넣지않는다
맵의 객체 . put ( 키값 , 값 ); 으로 저장한다!
해당 값을 불러오기위해선
map.get(키값); 을 한다면 "값"으로 리턴된다.
위의 표 메소드들도 사용가능하다