arrayList index 접근하기

ZOO4WE·2022년 10월 22일
0

자바

목록 보기
1/2

알고리즘 문제를 풀다보면 문제에 따라 arrayList를 사용해야 하는 경우가 있다. arrayList는 이름부터 array를 담고 있기 때문에 index로 접근할 수 있어서 정리 해보고자 한다.

ArrayList<Integer> caches = new ArrayList<>();

caches.add(1);
caches.add(3);
caches.add(2);
caches.add(4);

cache라는 배열에 1, 3, 2, 4 값을 저장하였다.

arrayList index 접근하기

int fistNum = caches.get(0);
int lastNum = caches.get(caches.size() - 1);

System.out.println("첫번째 인덱스 값 : " + fistNum); // 1
System.out.println("마지막 인덱스 값 : " + lastNum); // 4

이제 처음 index와 마지막 index의 값을 구해보자.
get 메소드를 사용하면 index의 값을 구할 수 있다.

해당 값의 index를 구하기

int numIdx = caches.indexOf(2);
System.out.println("2의 인덱스 값 : " + numIdx); // 2

indexof 메소드를 사용하면 2라는 값의 index 값을 구할 수 있다.

  • 값이 있는 경우 : index 리턴
  • 값이 없는 경우 : -1 리턴

indexof는 위와 같이 return 해주는 값으로 값의 유무를 판단할 수 있다.

그렇다면 특정 값을 삭제하면 어떻게 될까?
2라는 값보다 먼저 존재하는 1을 삭제해보자.

특정값 삭제하기

caches.remove(Integer.valueOf(1)); // 값 1을 제거한다.

remove라는 메소드를 통해 1을 삭제하였다.

그렇다면 1이라는 값만 삭제하였을 때, arrayList에는 무슨 변화가 있을까?
1) index는 그대로이며 0번째 배열의 1값만 삭제되었다.
2) 0번째 배열이 값과 함께 지워지고 뒤의 index가 그 자리를 채운다.

System.out.println("2의 인덱스 값 : " + numIdx); // 1

정답은 바로 2번이다.
이제 arrayList에는 {3,2,4}의 값이 존재하게 된다.
이는 arrayList가 array와는 달리 가변적으로 변하는 선형리스트이기 때문이다.

profile
직장인 K씨의 개발스러운 일일

0개의 댓글