<--! [JAVA] 스택과 큐(Stacks and Queues) 알아보기(2) -->

[JAVA] 스택과 큐(Stacks and Queues) 알아보기(2)

필그램

·

2017. 7. 14. 07:27

이전의 스택 설명에 이어 큐에 대해 코드를 설명합니다.


먼저 큐의 데이터 입력과 출력 명령어를 알아보면, 

queue.offer("1") // 1 추가하기

queue.poll() // 큐 순서인 맨 앞에것 출력하기


입력코드는 앞의 스택에 추가한 것입니다.


public class MainActivity extends AppCompatActivity {

EditText mEditText;
Stack<Integer> stack = new Stack<Integer>();
// Queue<Integer> queue = new Queue<Integer>();

// 스택과 달리 Queue를 사용하지 않고 아래의 용어를 씁니다.

ConcurrentLinkedQueue<Integer> queue = new ConcurrentLinkedQueue<Integer>();
int count = 0;
int qcount = 0; // 큐의 카운트

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mEditText = (EditText) findViewById(R.id.editText);
}

public void onAddClicked (View v) {
stack.push(count); //스택에 추가
mEditText.setText("\n스택에 추가함 : " + count);
count ++;
mEditText.append("\n스택 : " + stack);
}

public void onGetClicked (View v) {
int outValue = stack.pop();
mEditText.setText("\n스택에서 가져옴 : " + outValue);

mEditText.append("\n스택 : " + stack);
}

public void onAdd2Click (View v) {
queue.offer(qcount);
mEditText.setText("\n큐에 추가함 : " + qcount);
qcount++;
mEditText.append("\n큐 : " + queue);
}

public void onGet2Click (View v) {
int outValue2 = queue.poll();
mEditText.setText("\n큐에서 가져옴 : " + outValue2);

mEditText.append("\n큐 : " + queue);

}
}


0부터 5까지 큐로 입력한 뒤, 큐로 데이터를 빼내면 앞의 데이터(0부터)가 빠져 나옵니다. 

이것은 프린터의 출력 명령을 내리면, 출력하는 방식과같은데요. 먼저 출력 요청한것이 실제로 프린트 되는 것과 같은 원리 입니다.


이 코드의 결과물은 아래 그림과 같습니다.





반응형