you8054   4년 전

이번에 처음으로


스택에 한번에 여러가지의 변수형, 인스턴스를 push할 때 Object 타입의 배열에 다 때려넣고 그 배열을 push 했습니다.

그리고 pop할 때는 각각 다운 캐스팅해서 사용했고요.

이런식으로 써본 것이 처음이라 어색하고 이런 상황에서 Object타입의 배열을 사용하는 것이 일반적인 건지 모르겠습니다.

여기서 질문입니다.

  1. 위의 경우처럼 여러가지 타입의 변수와 인스턴스를 한 번에 push하고 싶을 때 Object타입의 배열을 사용하는 것이 일반적인 방법인가요?

2. 아니라면 어떤 방법이 있나요?

mwy3055   4년 전

타입별로 큐를 분리하는 건 어떤가요?

mwy3055   4년 전

큐가 아니고 스택;;

you8054   4년 전

말씀하신 방법도 가능할 것 같네요.

근데 한 번에 넣고 싶은게 많을 경우엔 각각 스택으로 분리하면 더 복잡해질 것 같아요.

nahwasa   4년 전

우선 자바에선 뭐든 Object가 최상위 부모클래스이므로 Object형을 사용한다는것 자체가 무엇이든 넣겠다는 의미입니다.

즉 Object형 사용은 약간.. 하드코딩 느낌에 최후의 방법같은?!

그리고 애초에 Object[]형도 Object 타입에 넣을 수 있습니다. 정 Object를 쓰시겠다면 Object[] 보단 Object만 사용하시는게 이해하시기에 더 나을듯합니다.

Stack boardStack = new Stack();
Object[] curPosition = new Object[3];

..

boardStack.push(curPosition);

그리고, 단순히 문제풀기에는 이런식으로 넘어가도 괜찮으나,

실제 사용할 코드라면 이 경우 단순히 x,y와 movedRoute를 한꺼번에 스택에 넣기 위해서이니

차라리 새로운 class를 정의해주시고 해당 클래스형으로 Stack을 사용하시는게 더 나은방법일 것 같습니다.

nahwasa   4년 전

최종적으로 이런방식이 더 좋은방식이긴 합니다!

you8054   4년 전

말씀 하신대로 Object배열보다는 클래스를 정의하는게 적절한 것 같네요.

친절히 답변 달아주셔서 감사합니다.

댓글을 작성하려면 로그인해야 합니다.