KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > java > util > Stack


1 /*
2  * Copyright 2006 Google Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */

16 package java.util;
17
18 /**
19  * Maintains a last-in, first-out collection of objects.
20  */

21 public class Stack extends Vector JavaDoc {
22
23   public Object JavaDoc clone() {
24     Stack JavaDoc s = new Stack JavaDoc();
25     s.addAll(this);
26     return s;
27   }
28
29   public boolean empty() {
30     return isEmpty();
31   }
32
33   public Object JavaDoc peek() {
34     int sz = size();
35     if (sz > 0) {
36       return get(sz - 1);
37     } else {
38       throw new EmptyStackException JavaDoc();
39     }
40   }
41
42   public Object JavaDoc pop() {
43     int sz = size();
44     if (sz > 0) {
45       return remove(sz - 1);
46     } else {
47       throw new EmptyStackException JavaDoc();
48     }
49   }
50
51   public Object JavaDoc push(Object JavaDoc o) {
52     add(o);
53     return o;
54   }
55
56   public int search(Object JavaDoc o) {
57     for (int i = 0, n = size(); i < n; ++i) {
58       Object JavaDoc other = get(i);
59       if (o == null ? other == null : o.equals(other)) {
60         return n - i;
61       }
62     }
63     return -1;
64   }
65
66 }
67
Popular Tags