융프1 실습과제_6/1

나은·2023년 6월 7일

융프1 실습과제

목록 보기
10/11

복습

코드타이핑 6/8


문제


정답

메인클래스

package do_it_java_ch2;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("ArrList<E>클래스 설계");
		ArrList<Integer> arr = new ArrList<Integer>();
		arr.add(5);
		arr.add(4);
		arr.add(-1);

		System.out.println("ArrList요소수: " + arr.size());
		for (int i = 0; i < arr.size(); i++) {
			System.out.println(arr.get(i));
		}
		System.out.println();

		arr.add(2, 100);
		arr.show();

		arr.remove(1);
		arr.show();
	}

}

ArrList클래스

package do_it_java_ch2;

public class ArrList<E> {
	private E[] a;
	private int size;

	ArrList() {
		a = (E[]) new Object[50];
		size = 0;
	}

	public void add(E newItem) {
		a[size++] = newItem;
	}

	E get(int pos) {
		return a[pos];
	}

	public int size() {
		return size;
	}

	public void add(int pos, E newItem) {
		for (int i = size - 1; i >= pos; i--)
			a[i + 1] = a[i];
		a[pos] = newItem;
		size++;
	}

	public void remove(int pos) {
		for (int i = pos; i < size - 1; i++) {
			a[i] = a[i + 1];
		}
		size--;
	}

	public void show() {
		for (int i = 0; i < size; i++) {
			System.out.print(a[i] + " ");
		}
		System.err.println();
	}

}

공부

  • 위 코드는 ArrList라는 제네릭 컬렉션 클래스를 구현한거임 제네릭을 사용해 클래스를 정의함으로써, ArrList클래스로 다양한 타입의 요소를 저장할 수 있는 컬렉션을 생성함

  • private E[] a;
    -> Arrlist클래스 내부에 E타입 배열 a가 선언

  • for (int i = size - 1; i >= pos; i--): -> size - 1부터 시작하여 pos까지 역순으로 반복하는 반복문입니다. 이 반복문은 배열의 요소들을 한 칸씩 오른쪽으로 이동시키는 역할을 합니다. 이렇게 함으로써 새로운 요소를 삽입할 위치를 확보합
    -> a[i + 1] = a[i];: 반복문 내부에서 현재 인덱스 i의 값을 다음 인덱스 i + 1로 이동시킵니다. 이렇게 함으로써 배열의 요소들이 한 칸씩 오른쪽으로 이동

profile
코딩공부블로그

0개의 댓글