Test149 컬렉션 프레임워크(Collection Framework) ★★★★★
※ 컬렉션 프레임워크(Collection Framework
: 환경, 틀, 약속
※ 자료
현실 세계로부터 단순한 관찰이나 측정을 통해 수집된 사실이나 개념의 값들 또는 그 값들의 집합.
※ 자료구조
자료 처리를 위한 자료의 표현, 저장, 관계, 관리 및 이용에 관한 방법 등의 개념을 이해하여 프로그램에 사용하고
컴퓨터에 의해 처리되는 과정에서 적절한 자료의 표현, 구성, 저장 및 처리를 위한 알고리즘의 작성 및 선택과 이용 방법을 연구하는 분야.
↓
※ 컬렉션 프레임워크(Collection Framework)
컬렉션(모아놓은 데이터들)의 표현과 조작을 위한 통일된 아키텍처로
컬렉션 프레임워크를 구성하는 요소는 다음과 같다. (세가지)
1. 인터페이스(Interface)
기본적으로 컬렉션에 필요한 데이터 관리 기능을 제공한다.
예를 들어 list 는 추가, 삭제, 검색 등의 기능을 제공하는
컬렉션 인터페이스가 존재하며 각 컬렉션마다 고유의
인터페이스가 정의되어 있다.
2. 구현(Implementation)
인터페이스를 구현한 클래스로 각 컬렉션을 실제 어떤
자료구조를 이용하여 표현했느냐에 따라 컬렉션의 종류가 달라진다.
3. 알고리즘(Algorithms)
각 컬렉션들마다 유용하게 사용할 수 있는 메소드를 의미한다.
※ 자바 컬렉션은 견고한 컬렉션 프레임워크 기반 위에 정의되어 있으므로
각 컬렉션 종류마다 제공되는 메소드의 일관성이 있기 때문에
한 가지 컬렉션을 익혀두면 다른 컬렉션을 사용하는 데 용이하다.
※ 리스트 자료구조 : 순서가 중요
※ 스택(Stack)
Stack 클래스는 오브젝트 후입선출(LIFO) 구조의 Stack 을 나타낸다.
이는 벡터(Vector)를 스택으로 처리하는 5개의 메소드로 벡터(Vector) 클래스를 확장하게 된다.
통상의 push() 메소드와 pop() 메소드가 제공되는 것 외에 스택의 선두 항목으로 peek() 을 실시하는 메소드,
스택이 비어있는지의 여부를 확인하는 메솓, isEmpty() 스택으로 항목을 찾아서 선두로부터 몇 번째인지를 찾아내는 메소드 등이 제공된다.
스택이 처음으로 작성되었을 때, 항목은 존재하지 않는다.
- boolean empty()
스택이 비어있는지 확인한다.
- E Object peek()
스택 맨 위의 객체를 스택에서 제거하지 않고 반환한다.
- E Object pop()
스택 맨 위의 객체를 반환하고 제거한다.
- E Object push(E item)
객체를 스택 자료구조에 저장한다.
- int search(Object o)
스택 맨 위에서부터 파라미터 값으로 넘겨받은 객체까지의 거리를 반환한다.
맨 위의 객체의 경우 1을 반환하고 그 아래 객체는 2를 반환하는 형식.
Test149.java
import java.util.Stack;
public class Test149
{
public static void main(String[] args)
{
// Stack 자료구조 생성
Stack<Object> myStack = new Stack<Object>(); //-- Object를 담을 수 있는 그릇 myStack 자료구조 생성
String str1 = "컴퓨터";
String str2 = "키보드";
String str3 = "마우스";
String str4 = "모니터";
// myStack 이라는 Stack 자료구조 안에 str1 ~ str4 까지 담아내기
myStack.add(str1);
myStack.add(str2);
myStack.push(str3);
myStack.push(str4);
// peek() : 스택 맨 위의 객체 반환. 제거하지 않는다.
String val = (String)myStack.peek(); // 현재 String 이 객체화되어 담겨있기 때문에 명시적 형변환을 시켜야한다.
System.out.println("val : " + val);
val = (String)myStack.peek();
System.out.println("val : " + val);
val = (String)myStack.peek();
System.out.println("val : " + val);
// myStack 이라는 이름을 가진 Stack 자료구조에
// 데이터가 비어있지 않은 상태라면... (채워져 있는 상태라면...)
while (!myStack.isEmpty())
{
// pop() : 스택 맨 위의 객체 반환. 제거한다.
val = (String)myStack.pop();
System.out.println("value : " + val);
}
}
}
cmd
val : 모니터
val : 모니터
val : 모니터
value : 모니터
value : 마우스
value : 키보드
value : 컴퓨터
계속하려면 아무 키나 누르십시오 . . .
'Study Note > Java' 카테고리의 다른 글
JAVA_ Test151_ 컬렉션 프레임워크(Collection Framework) / Queue 클래스 FIFO 구조 (0) | 2018.06.17 |
---|---|
JAVA_ Test150_ 컬렉션 프레임워크(Collection Framework) / 제네릭 (0) | 2018.06.17 |
JAVA_ Test148_ 예외(Exception) 처리 / 다른 예외 다시 던지기 / ⓐ빨간폭탄 → ⓑ파란폭탄 (0) | 2018.06.17 |
JAVA_ Test147_ 예외(Exception) 처리 / 예외 다시 던지기 (0) | 2018.06.17 |
JAVA_ Test145 & Test146_ 예외(Exception) 처리 (0) | 2018.06.17 |
댓글