자료구조에 들어가기 앞서 배열에 대하여 복습을 위해
원하는 인덱스에 값을 넣는 기능을 만들어보자
우선 정수형 타입을 담는 배열 intArr을 만들고
배열의 크기는 10으로 상수선언하자
배열을 인덱스 0부터 10까지 차곡차곡 넣는 addElement 메소드를 만들어 보자
count는 0이 기본값으로 초기화되어있기떄문에
제일 처음 넣는 값은 intArr[0]에 저장이된다
그다음 넣는 값은 intArr[1]에 저장되게 하기 위해서 count++ 를 넣어주자
만약 안에있는 요소의 갯수가 배열의 크기를 초과한다면 방어적 코드가 발동되게 설계해주자
이번에는 지정한 인덱스 번호의 요소의 값을 출력해주는 getElement 메소드를 설계해보자
별 어려울것없이 원하는 인덱스 번호 정수값을 받아와 배열의 인덱스에 넣어주면 된다
방어적 코드는 지정한 인덱스 번호가 0보다 작거나 배열의 크기보다 크면 오류를 반환한다
이번에는 배열안에 있는 요소를 전부 출력해주는 printAll 메소드를 설계해보자
이것도 반복문을 활용해 인덱스번호를 i로 치환해서 0부터 배열의 길이만큼 전부 출력해주면된다
방어적 코드는 안에 요소의 갯수가 0개라면 출력할 내용이 없다고 반환하자
이번에는 배열안에 있는 요소를 전부 삭제하는 removeAll 메소드를 설계해보자
이것 또한 반복문을 활용해 인덱스번호 0부터 배열의 길이까지 0을 넣어주면 된다
그리고 요소의 갯수 또한 0으로 초기화한다
다음으로는 요소의 갯수를 반환하는 get메소드와 요소가 없는지 있는지 참 거짓으로 반환하는
isEmpty메소드를 만들어 놓자(후에 서술할 요소 삭제 메소드에 필요)
이번에는 배열의 지정한 위치에 요소를 집어넣는 메소드를 설계해보자
파라미터 변수 지정할 인덱스번호와 요소의 값을 받아오도록 설계하고
반복문을 활용하여 i가 뒤에서부터 하나씩 요소를 뒤로 이동 시키는작업을
지정한 인덱스번호까지 시켜준뒤 지정한 인덱스번호에 원하는 요소의 값을
집어 넣는식으로 설계해주었다
방어적 코드는 요소의 갯수가 배열의 크기보다 크다면 메모리 공간이 가득찼음을
출력, 지정한 인덱스 번호가 0보다 작거나 배열의 크기보다 크다면 범위가 벘어남
을 출력하게 만들어준다
이번에는 지정한 인덱스 번호에 있는 요소를 삭제하는 removeElement메소드를 설계해보자
아까 서술한 isEmpty메소드를 활용하여 만약 안에 요소가 없다면 삭제할 요소가 없다는 메세지를
출력할 방어적 코드를 만들어 두자
이것또한 반복문을 활용해 내가 지정한 인덱스번호부터 시작해 다음 인덱스 번호의 값을 씌우고
그 다음 번호에 그 다다음 번호의 값을 덮어씌워 지정한 인덱스 번호의 값만 사라지게 만들도록
설계 해주었다 요소의 갯수가 하나 줄어들었으니 count(요소의 갯수)는 --;
이제 기능이 제대로 작동하는지 확인해보자
가장먼저 요소를 추가하는 메소드와 지정한 번호의 메소드를 출력하는 메소드를 확인해보자
요소에 1의 값을 집어넣고 첫번째 인덱스 번호에 1이 들어간것을 확인할수있다.
0번째 요소를 삭제하라는 명령도 정상적으로 작동하는것을 확인할수있다.
'Java' 카테고리의 다른 글
LinkedList (0) | 2024.05.22 |
---|---|
배열을 활용한 큐 구현하기 (0) | 2024.05.21 |
자료구조 (1) | 2024.05.07 |
multi-threading (0) | 2024.05.06 |
Thread (0) | 2024.05.05 |