Day09 - 배열의 삭제

2021. 2. 25. 14:03JAVA 공부

이번에는 배열의 삭제에 대해 알아 봅시다 ~

배열의 삭제

이번에도 먼저, 배열을 선언하고 값을 넣어 줄게요

저희는 여기서 5라는 값을 삭제 시켜주고 싶어요

그러면 어떻게 해야 할까요?

5가 있는 index(위치) 부터 10까지 이동하면서 값을 1개씩 땡겨주면 되겠죠?

ex) 1, 2, 3, 4, 6, 7, 8, 9, 10 요렇게

arr[i] = arr[i +1] 이렇게 해주면, i + 1 이 배열의 마지막까지만 참조하게 하기 위해서 반복을 배열의 최대길이 - 1 까지 해주어야 겠죠.

그런데, 출력을 해보니까 마지막에 10이 두개가 됐죠?

왜 이럴까요?

그 이유는, 실제로 배열의 길이를 줄이는 방법이 없기 때문 인데요

배열의 값을 땡겨주었어도, 길이는 계속 10이죠.

 

자 그러면, 이 현상을 해결해 봅시다

이번에는 삭제를 했다면, 배열의 길이를 1개를 줄여볼게요 (실제로는 눈속임)

먼저, 배열에 데이터(값)를 넣어 줍니다

삭제할 이름(값)을 입력 받습니다

이제, 반복문을 돌면서, 삭제할 이름과 같은 배열의 데이터를 찾아주고, 삭제시킬 껀데,

여기서 먼저 count를 선언 해줍시다.

이 count는 배열의 길이로 대신 사용해 줄거에요

그 다음으로 반복문을 만들어 줍시다.

외부 for문 안에 있는 내부 for문은, 위에 있는 숫자를 지우는 코드와 똑같죠?

그런데 여기서는 , 값을 변경시켜주고, count를 감소 시켜줍니다.

그리고, 삭제가 되엇는지를 boolean형 변수 chk를 통해 확인을 해줍니다

 

이제 for문 밖에서, 출력문을 뽑아줄게요

삭제가 실패 했을 경우에는, 출력문을 1개만 해주면 되지만, 성공 했을 때는 반복되는 위치를 조정해줄 필요가 있습니다. 삭제가 되었다면 원래의 배열 길이보다 작아지겠죠?

그 작아진 배열의 길이를 count로 저장해 놓고 해당 값 만큼만 반복을 시켜줍니다

사실상 배열을 삭제한 것이 아니라 한 것 처럼 보이게 하는 것 뿐입니다.

 

이렇게 배열의 삭제에 대해 알아보았습니다.

 

고생하셨습니다

'JAVA 공부' 카테고리의 다른 글

Day10 - 메서드(함수) 02 . 매개 변수  (0) 2021.02.27
Day10 - 메서드(함수) 01 . 생성과 사용  (0) 2021.02.26
Day09 - 배열의 수정  (0) 2021.02.25
Day08 - 배열의 값 추가  (0) 2021.02.25
Day08 - 제어문 continue  (0) 2021.02.25