JAVA | 55 - 类集框架 | Stack |

本文通过一个具体的Java示例介绍了栈这种数据结构的使用方法。示例中定义了一个Book类并利用栈完成了一系列的压栈和出栈操作,展示了栈的先进后出特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈是一种先进后出的数据结构,Stack 是 Vector 的子类,但 Stack 并不使用 Vector 的方法。

在进行栈操作的过程中,如果已经栈已经没有数据了,那么无法继续出栈。

import java.util.*;

class Book{
    private String title;
    private int price;
    public Book(String title, int price){
        this.title = title;
        this.price = price;
    }
    @Override
    public String toString() {
        return this.title + " " + this.price;
    }
    @Override
    public int hashCode() {
        return Objects.hash(title, price);
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        final Book other = (Book) obj;
        return Objects.equals(this.title, other.title)
                && Objects.equals(this.price, other.price);
    }
}
public class Main {
    public static void main(String[] args) throws Exception{
        // 设置了泛型,从而保证集合中所有的数据类型都一致
        Book bookA = new Book("java",100);
        Book bookB = new Book("c",89);
        Book bookC = new Book("c++",100);
        Book bookD = new Book("python",100);
        Stack <Book> stack = new Stack <Book>();
        stack.push(bookA);
        stack.push(bookB);
        stack.push(bookC);
        stack.push(bookD);
        System.out.println(stack.pop());
        System.out.println(stack.pop());
        System.out.println(stack.pop());
        System.out.println(stack.pop());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值