2017-11-19 1 views
0

저는 BlueJ를 오래 동안 사용 해왔고 최근에는 수업에서 스택 및 배열을 만들고 작업을 시작했습니다. 이것은 기본적으로 현재해야 할 일입니다.BlueJ에 정수가있는 스택을 제대로 만들 수 있습니까?

"Integer"유형의 값과 함께 "zahlen"이라는 스택을 포함하는 "StackTest"클래스를 생성하십시오. 스택에 5, 10, 50 및 30을 각각 추가하십시오. 마지막으로 스택을 실행하면 콘솔에 10보다 큰 모든 값이 표시됩니다.

그들은 또한 수업 시간에 한 번 이상 사용할 수있는 특정 키워드 우리에게 준 : Keywords

import java.util.Stack; 
public class StackTest 
{ 
public StackTest(){ 
    Stack zahlen = new Stack(); 
    zahlen.push(5); 
    zahlen.push(10); 
    zahlen.push(50); 
    zahlen.push(30); 
    while (!zahlen.isEmpty()){ 
     if(zahlen.top()>10){ 
     } 
    zahlen.pop(); 
    } 
} 
} 

내 문제는 무엇보다도 먼저, 나는 정확히 괄호의 정수가 무엇인지 알 수 없다는 것입니다 또는 무엇을 사용할 수 있는지 ((Integer)에 대해 이야기하고) 또한 if 명령어에서 최상위 숫자 (zahlen.top())를 사용할 수 있는지 어떻게 확인할 수 있는지도 모르겠습니다.

답변

0

나는이 공식 자바 설명서의 스택 클래스를 읽어하기 위해 잠시 진정으로 가치가있을 것이라고 생각 : 그것은 조금 밀도가 될 수

https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html

하지만 유용한 정보가 많이 포함 . 이렇게하면 BlueJ, Eclipse 또는 다른 IDE를 사용하지 않고도 필요한 정보를 얻을 수 있습니다. :-)

0

스택은 LIFO 규칙 (선입 선출)을 따릅니다. 스택을 더러워지기를 원한다면 스택을 깨끗하게하고, 플레이트를 청소하려면 바닥이나 중간 부분에 도달하기보다는 스택 위에 플레이트를 가져 가야합니다. 귀하의 경우에는 더러운 접시 더미가 아니라 Integers 스택입니다.

당신은 당신의 코드 예제에서 스택으로 스택 수집, 당신 push() 요소를 만든 후에는이 같은 보일 것이다 :

|30| 
|50| 
|10| 
|5 | 
¯¯ 

참고 제쳐두고 요소 중 하나에 액세스 할 수 없습니다 스택 맨 위에서 (이 경우 30). 아래 요소들에 접근하려면 스택에서 pop() 스택을 제거해야합니다.

예를 들어

:

int value = zahlen.pop(); 

이 값이 30과 동일하게하고 새로운 스택 컬렉션과 같이 표시됩니다 : 당신은 지금 그것의 여부를 확인하는 값을 사용할 수 있습니다

| | 
|50| 
|10| 
|5 | 
¯¯ 

10보다 큰 경우 System.out.println()을 사용하여 콘솔에 값을 출력하고 스택이 비어지기까지 루프를 반복하면됩니다. 스택 상단에있는 값을 보이지 않게 보려면 peek() 메서드를 사용할 수 있습니다.

관련 문제