자바(JAVA)

(13) 컬렉션 프레임워크 (ArrayList)

주니홍 2022. 6. 23. 11:10
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(키값); 을 한다면 "값"으로 리턴된다.

 

위의 표 메소드들도 사용가능하다