`

java实现Iterable接口的栈(stack)

 
阅读更多
//实现Iterable接口,实现迭代遍历
   public class Stack<Item> implements Iterable<Item>{
private Node first;
private int N;
//定义内部类作为栈中的每一个节点
private class Node{
    Item item;
    Node next;
}
public boolean isEmpty(){
    return first==null;
}
public  int size(){
    return N;
}
public void push(Item item){
    Node oldFirst = first;
    first=new Node();
    first.item= item;
    first.next=oldFirst;
    N++;
}

public Item pop(){
    Item item=first.item;
    first = first.next;
    N--;
    return item;
}
//实现迭代遍历时返回的Iterator
private class AIterator implements Iterator<Item>{
    private Node current=first;
    public boolean hasNext(){return current!=null;}
    public Item next(){
        Item item=current.item;
        current=current.next;
        return item;
    }
    @Override
    public void remove() {
    }
}
@Override
public Iterator<Item> iterator() {
    return new AIterator();
}

 

分享到:
评论

相关推荐

    j2se集合课件是java的基础课程章节之一

    Java集合框架还包含了Queue(队列)、Deque(双端队列)、Stack(栈)等接口和实现,例如LinkedList可以作为双端队列使用,ArrayDeque作为高效栈和队列,PriorityQueue实现了优先队列,能根据元素的优先级进行出队。...

    JAvaOOp06 第六章 集合框架.pdf|06 第六章 集合框架.pdf

    10. 容器类:除了基本的集合接口和实现外,还有`Stack`(后进先出LIFO)、`Vector`(线程安全的ArrayList替代品)和`Hashtable`(线程安全的HashMap替代品)等容器类。 总之,Java集合框架是Java编程的核心工具之一...

    JAVA容器对象整理

    6. **Collection与Iterable接口** - `Collection`是最顶级的接口,所有集合类都继承它,提供了添加、删除和遍历元素的方法。 - `Iterable`接口允许对象被迭代,`for-each`循环依赖于这个接口。 7. **并发容器** ...

    Java--collection.rar_SEP_java 集合

    4. **Stack** 是 `List` 的子接口,实现了一个后进先出(LIFO)的栈数据结构。它提供了push、pop、peek等操作。 5. **Queue** 接口有多种实现,如 **ArrayDeque** 和 **PriorityQueue**。ArrayDeque提供了高效的...

    数据结构与算法--Java语言描述

    在Java语言中,我们可以使用ArrayList和LinkedList实现数组和链表,Stack和Queue接口实现栈和队列,TreeSet和TreeMap实现有序集合和映射,以及HashSet和HashMap实现无序集合和映射。这些内置类和接口简化了数据结构...

    Java集合面试问题

    根据给定文件的信息,我们可以提炼出以下...- **Iterator**则适用于所有实现了`Iterable`接口的集合,包括`Set`和`List`。 以上是对Java集合框架的基础介绍及关键知识点的总结,希望对你理解Java集合的概念有所帮助。

    2014年Java最全面试题以及答案.

    Java中实现多态的机制主要依赖于继承和接口,多态性表现为方法的重载和重写。 35. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 垃圾回收器的基本原理是...

    九阳真经-java基础面试.docx

    1. **Iterable接口**:这是Java集合框架的顶级接口,它定义了迭代器的迭代方法,使得可以通过迭代器遍历集合中的所有元素。 2. **Collection接口**:它是所有单值集合的基接口,提供了添加、删除和检查元素的基本...

    java util 类

    `Stack`类实现了后进先出(LIFO)的栈数据结构,而`Queue`接口及其实现类如`ArrayDeque`则提供了先进先出(FIFO)的队列操作。 `Properties`类用于处理属性文件,常用于配置文件的读取和写入。 `Iterator`和`...

    超全Java集合框架讲解.md

    - **`Stack`**:继承自`Vector`,实现了后进先出(LIFO)栈的基本操作。 - **`ArrayList`**:基于动态数组实现,支持快速随机访问,但插入和删除操作相对较慢。 - **`LinkedList`**:基于双向链表实现,支持高效的...

    java经典面试题.doc

    在Java中,如果一个类可以被序列化,它需要实现`Serializable`接口。 - **实现序列化**: - 使类实现`Serializable`接口; - 使用`ObjectOutputStream`类将对象写入流; - 使用`ObjectInputStream`类从流中读取...

    数据结构和Java集合框架 英文版 第三版

    - **增强型for循环**:简化了遍历过程,适用于任何实现了`Iterable`接口的对象。 - **并发安全**:针对多线程环境下的安全问题,提供了`ConcurrentHashMap`等并发安全的集合类。 4. **实用技巧**: - **集合工具...

    ItcastOA04_itcastoa_

    4. **Stack与Deque**:Stack是LinkedList的一个子接口,实现后进先出(LIFO)的堆栈操作。Deque接口扩展了Queue,支持双端操作,可以作为栈、队列或双端队列使用。 5. **Queue与PriorityQueue**:Queue接口表示一个...

    个人笔记--Java_API

    - `Stack`:继承自`Vector`,模拟栈结构。 **1.6 Set接口** - **特点**:无序且不允许重复元素。 - **实现类**: - `HashSet`:基于哈希表实现,元素无序。 - `LinkedHashSet`:基于哈希表+链表实现,维护元素...

    自己总结的一些java面试题

    - `Map` 不继承 `Collection`,而是直接实现了 `Iterable` 接口,用于存储键值对。 8. **Set 中的元素去重**: - `Set` 中的元素是唯一的,判断重复使用的是 `equals()` 方法,而非 `==`。`equals()` 方法在类中...

    data_Structures_java

    4. **Stack**:栈是后进先出(LIFO)的数据结构,Java中的Stack类继承自Vector,提供了push、pop、peek等操作,常用于表达式求值、递归调用等场景。 5. **Queue**:队列是先进先出(FIFO)的数据结构,Java提供...

    java-collections-examples:通过简单示例对Java Collections Framework的完整参考

    10. **Java接口**: 如Iterable、List、Set、Map等,它们定义了集合类的行为规范。了解这些接口有助于理解不同集合之间的关系和功能差异。 11. **泛型**: Java泛型允许在集合中使用类型安全的方式存储元素,避免了...

    实验报告-实验82

    这个链栈类实现了`Iterable&lt;Item&gt;`接口,允许通过`for-each`循环进行迭代,并提供了`toString()`方法便于调试。 链栈类内部定义了一个私有的内部类`Node`,代表链栈中的一个节点,包含数据(Item类型)和指向下一个...

    Estrutura-de-Dados-Lineares

    8. **Iterable接口**:所有线性数据结构都实现了Iterable接口,这意味着它们可以被foreach循环遍历,简化了代码的编写。 9. **泛型**:Java的泛型允许在定义数据结构时指定元素类型,增强了类型安全性和代码可读性...

Global site tag (gtag.js) - Google Analytics