본문 바로가기

분류 전체보기63

스택(Stack)의 구조 스택(Stack)의 구조 스택은 LIFO(Last In, First Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름 LIFO : 마지막에 넣은 데이터를 가장 먼저 추출함 FILO : 처음에 넣은 데이터를 가장 마지막에 추출함 데이터를 스택에 넣는건 push() / 데이터를 스택에서 꺼내는건 pop() 큐(Queue)가 FIFO 라면, 스택(Stack)은 LIFO 💡스택(Stack)의 장점 vs 단점 장점 : 구조의 단순화 / 데이터의 저장,읽기 속도 빠름 단점 : 데이터 최대 개수를 미리 정해야 하고, 미리 정한만큼 쓰지 못하면 저장공간의 낭비 발생 📝push와 pop을 이용한 예제코드 import java.util.Stack; public class Test_stac.. 2022. 8. 11.
큐(Queue)의 구조 큐(Queue)의 구조 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 FIFO(First in First out) / LILO(Last in Last out) 방식으로 이루어짐 큐에는 Enqueue(add(value), offer(value))와 Dequeue(poll(), remove()) 종류가 있음 Queue를 사용하기 위해서는 LinkedList 클래스를 사용하고, 어떤 데이터타입을 사용할건지 자료형 매개변수를 넣어서 지정 해줘야함 import java.util.LinkedList; import java.util.Queue; public class Test_queue { public static void main(String[] args) { Queue q_int = new LinkedL.. 2022. 8. 11.
리스트(List) 와 ArrayList의 차이 List는 인터페이스고 ArrayList는 클래스이다. 클래스는 일반 클래스와, abstract로 정의된 추상 클래스로 나뉨 인터페이스는 모든 메서드가 추상 메서드인 경우를 의미 인터페이스를 상속받는 클래스는 인터페이스에서 정의된 추상 메서드를 모두 구현해야 함 (따라서 다양한 클래스를 상속받는 특정 인터페이스는 결국 동일한 메서드를 제공함) 하나의 예를 보자. List list1 = new ArrayList(); // list1을 ArrayList객체로 만듦 list1 = new LinkedList(); // 그리고 이렇게 LinkedList 객체로도 대체가 가능함 위의 예제에서 보듯이 List가 인터페이스인데, 해당 인터페이스의 추상 메서드를 구현하는 게 ArrayList, LinkedList 둘 다.. 2022. 8. 11.