[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부터)가 빠져 나옵니다.
이것은 프린터의 출력 명령을 내리면, 출력하는 방식과같은데요. 먼저 출력 요청한것이 실제로 프린트 되는 것과 같은 원리 입니다.
이 코드의 결과물은 아래 그림과 같습니다.
'프로그래밍' 카테고리의 다른 글
Git(깃) : 명령어 정리 - 처음 그리고 추가 프로젝트 올리기 (0) | 2017.11.14 |
---|---|
RESTful programming 이란? (0) | 2017.09.13 |
SQLite 에서 기존 배포된 DB 테이블 변경시 활용하는 헬퍼(SQLiteOpenHelper) 클래스 (0) | 2017.08.03 |
맥북(MAC or OSX) 화면캡쳐 저장 및 저장 디렉토리 바꾸기 (0) | 2017.07.01 |
PHP로 루프(loops) 예제 연습 : 곱셈표 만들기 (0) | 2017.06.18 |