배열과 컬렉션에 대해
배열과 컬렉션은 데이터를 효과적으로 저장하기 위해 고안됐다. 비슷한 데이터들을 한곳에 묶어서 분류 해놓는다면, 내가원할 때 데이터를 쉽게(이미 분류되어) 이용할 수있기 때문에 사용한다.
<배열>
배열은
int [] ages ; 혹은 int ages[];로 선언한다.
[]가 배열로 선언하겠다는 뜻.
선언을 한 후 생성자를 통해 배열을 생성해줘야 한다. 생성자는 new 키워드를 사용
int[] ages = new int[8]; // int형 데이터를 8개 저장 할 수있는 메모리 할당
이때 배열의 메모리는 stack영역에는 배열의 영역이 생성되고 Heap에 배열 객체가 생성된다. 이떄 stack영역에는 배열변수의 레퍼런스 값이 저장된다.
이때 배열의 크기는 변경이 불가능하므로, 메모리에 존재하지 않는 영역에값을 할당할 때는 에러가발생한다.
배열에 값을 할당하는 방식은 다음과 같다
ages[0] = 2;
ages[1] = 8;
이는 0번째 인덱스에 2값을, 1번째인덱스에 8값을할당하는 것. 배열은 0번 인덱스 부터 시작한다.
배열에 할당되어 있는 값들을 불러오깅 위해선 반복문을 이용하여 값을 꺼내온다.
for ( int index = 0; index<ages.length(); i++){
System.out.println(ages[i])}
이런식으로 값을 가져온다. 이때 배열에서 제공하는length() 메소드를 사용한다. 이는 배열의 크기값을 int값으로 반환해준다. 코드를해석해보면, index를 0부터 시작하여 배열의 크기의 횟수만큼 반복하겠다. 이때반복문은 ages속 index순서대로 접근하여 출력해준다.
앞으로 이런식으로 배열을 출력 해주는 방식을많이 사용할 것같다. length메소드를 자주사용하도록 하자.
<컬렉션>
앞으로 나올 컬렉션 들은 위와 달리 배열의 크기를 생성할 때 미리 지정하지 않고 생성한다. 따라서 입력횟수가 정해지지 않는 데이터를 저장할 때 유용하다.
List형 배열은 순서가있고, 중복을 허용하는 방식이다.
Stack형은 처음들어온 데이터값이 가장 빨리나오는 방식으로 first in last out 방식이다. 때문에 최근에 들어온 데이터들을 자주 사용할 때 사용하면 좋은 배열 형태.
queue형은 Stack과 반대로 first in first out형태이다.
set형은 데이터의 순서는 보장하지않지만, 중복된 데이터를 허용하지 않는 방식이다.
map형은 key-value를 쌍값으로 가지고 있으며, value값을 찾을 때 key값을 이용하여 찾는다.이때 key값은 유일한 값으로 존재한다. key값이중복되면, 기존에 있던 key값은 삭제되고 새로운 key값으로 초기화된다.
컬렉션의 경우 각 컬렉션의 특징을 잘 이용하고, 제공하는 메소드들이 달라 이용할 때 마다 구글링을 하여 사용했다. get()메소드를 사용해야하는 컬렉션, pop()을 사용해야 하는컬렉션, iterator를 이용해야 하는등 컬렉션마다 갖고있는 특색이달라 정말 많이 사용해봐야 겠다.
컬렉션의 경우 아직 내가 많이 사용해보지 못해 다음 til때 다시 다뤄야겠다. 아직 서술하기에 내공부가 부족한 것 같다.
오늘의 과제를 컬렉션으로 진행하였다.