창고 (Stack) 의 실현 -- 순서 창고 -- 자바
2360 단어 자바 기반
Class Stack
스 택 의 기본 작업 은 스 택 에 초기 화, 입 스 택, 출 스 택, 스 택 의 정상 요 소 를 가 져 오고 스 택 이 비어 있 는 지 판단 하 며 스 택 안의 요소 개 수 를 가 져 옵 니 다.은밀 한 기능: 창고 가 꽉 찼 는 지 판단 하고 꽉 찼 으 면 용량 을 늘 려 야 합 니 다.
패 키 징 은 하나의 Stack 을 실현 하고 스 택 내 매개 변수 로 범 형 을 사용 합 니 다.
package d20180828.ch11;
import java.util.Arrays;
public class Stack {
private int size = 0;
private Object[] array;
//
public Stack(){
this(10);
}
//
public Stack(int initialCapacity){
if(initialCapacity <= 0){
throw new RuntimeException(" ");
}
array = new Object[initialCapacity];
}
//
public E push(E item){
ensureCapacityHelper(size+1);
array[size++] = item;
return item;
}
//
public E peek(){
if(isEmpty()){
throw new IndexOutOfBoundsException(" ");
}
return (E) array[size-1];
}
//
public E pop(){
E item = peek();
size--;
return item;
}
//
public boolean isEmpty(){
return size == 0;
}
public int size(){
return size;
}
//
private void ensureCapacityHelper(int minCapacity){
if(minCapacity > array.length){
grow();
}
}
//
private void grow(){
int oldCapacity = array.length;
int newCapacity = oldCapacity*2;
if(newCapacity < oldCapacity){
//
throw new OutOfMemoryError();
}else{
array = Arrays.copyOf(array, newCapacity);
}
}
}
테스트 코드
package d20180828.ch11;
public class StackTest {
public static void main(String[] args){
Stack s = new Stack();
s.push("a");
s.push("b");
System.out.println(s.pop());
System.out.println(s.peek());
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
범용 용법 예시앞으로 51CTO 에 정착 해 기술 개발 에 전념 할 테 니 잘 부탁드립니다.다음 코드 는 자신 이 (저자: 이 흥 화) 를 공부 할 때 두 드 린 코드 로 주석 이 완비 되 어 있다. 범용 클래스 Point. ja...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.