[JavaStudy] Stack


Stack ?


辞書の意味では「山」「山」という意味です.
Collectionフレームワークの一部でもあるjava.utilパッケージに属します.
Stackの最大の特徴は後入先出(LIFO : Last In First Out)である.

宣言Stack

Stack st = new Stack(); // 타입 설정x Object로 선언 

Stack<StackDemo> demo = new Stack<StackDemo>(); // class타입으로 선언 
Stack<Integer> i = new Stack<Integer>(); // Integer타입 선언 
Stack<Integer> i2 = new Stack<>(); // 뒤의 타입 생략 가능 

Stack<String> s = new Stack<String>(); // String타입 선언 
Stack<Character> ch = new Stack<Character>(); // Char타입 선언
Stack<타입> 변수명 = new Stack<타입>();と発表された.
タイプ宣言は省略できますが、入力を継続できないとタイプエラーが発生するので、タイプを明確に宣言したほうがいいです.

スタック値の追加:push()


import java.util.Stack;

public class stack_study {

    public static void main(String[] args) {
        Stack<String> st = new Stack<>();

        // Stack 값 추가 : push()
        st.push("HI Developer");
        st.push("ME too");

        System.out.println(st);
    }
}
[結果]

スタック値の削除:pop()、clear()


import java.util.Stack;

public class stack_study {

    public static void main(String[] args) {
        Stack<String> st = new Stack<>();

        // Stack 값 추가 : push()
        st.push("HI Developer");
        st.push("ME too");

        System.out.println(st);

        st.pop();   // ME too 삭제
        System.out.println(st);

        st.clear(); // Stack 값 전체 제거
        System.out.println(st);
    }
}
pop()メソッドを使用すると、Stackから値が削除されます.
最後に入力した値をLIFOに沿って削除します!clear()メソッドを使用して、Stackのすべての値を削除します.
[結果]

取得スタックサイズ:size()

import java.util.Stack;

public class stack_study {

    public static void main(String[] args) {
        Stack<String> st = new Stack<>();

        // Stack 값 추가 : push()
        st.push("HI Developer");
        st.push("ME too");

        System.out.println("Size : " + st.size());
    }
}
[結果]

Stack値出力:firstElement()、lastElement()、peek()、奇形器()

import java.util.Iterator;
import java.util.Stack;

public class stack_study {

    public static void main(String[] args) {
        Stack<String> st = new Stack<>();

        // Stack 값 추가 : push()
        st.push("HI Developer");
        st.push("ME too");
        st.push("Nice to meet you");

        // firstElement, lastElement, peek
        System.out.println("처음 값 : " + st.firstElement());
        System.out.println("마지막 값 : " + st.lastElement());
        System.out.println("마지막 값 : " + st.peek());

        // get() 메서드 사용하여 index 출력
        for(int i = 0; i < st.size(); i++){
            System.out.println(st.get(i)+ " ");
        }

        // 향상된 for문 사용하여 Stack 값 출력
        for(String str : st){
            System.out.println(str + " ");
        }

        // Iterator를 사용하여 Stack 값 출력
        Iterator iter = st.iterator();
        while(iter.hasNext()){
            System.out.println(iter.next()+ " ");
        }

    }
}
firstElement():Stackの最初のInput値を見つけることができますlastElement()peek():Stackの最終入力値

[結果]

検索Stack値:contains()、indexOf()

import java.util.Iterator;
import java.util.Stack;

public class stack_study {

    public static void main(String[] args) {
        Stack<String> st = new Stack<>();

        // Stack 값 추가 : push()
        st.push("HI Developer");
        st.push("ME too");
        st.push("Nice to meet you");

        System.out.println("값 검색(contains) : " + st.contains("HI"));
        System.out.println("값 검색(indexOf) : " + st.indexOf("HI"));

        System.out.println("값 검색(contains) : " + st.contains("HI Developer"));
        System.out.println("값 검색(indexOf) : " + st.indexOf("HI Developer"));
        System.out.println("값 검색(indexOf) : " + st.indexOf("ME too"));

    }
}
contains():呼び出しメソッドは、値がtrue、falseであるかどうかを判断します.indexOf():メソッドが値を返すインデックスを呼び出します.
[結果]

注意:https://crazykim2.tistory.com/569
https://coding-factory.tistory.com/601