来源于 think in java 上 有点牛角尖的感觉 呵呵 也许以后会用到
package eight;
import java.util.LinkedList;
import java.util.Stack;
public class StackTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack stack = new Stack();
stack.push("1");
stack.push("2");
stack.push("3");
System.out.println("stack"+stack.get(1));
//结果 2
LinkedList list = new LinkedList();
list.addFirst("1");
list.addFirst("2");
list.addLast("3");
for(int i=0;i<list.size();i++){
System.out.println("list"+list.get(i));
}
//结果 2 1 3
}
}
分享到:
相关推荐
这包括使用LinkedList的addFirst()和removeFirst()方法实现push和pop,通过`StringStack1.java`类封装这些操作,并在`StringStackTest1.java`中进行测试以确保其正确性。这样的实践有助于提升对Java集合框架的理解,...
Java中常用的链表有单链表(LinkedList)和双向链表。 - **栈**:后进先出(LIFO)的数据结构,Java的java.util.Stack类实现了栈的操作。 - **队列**:先进先出(FIFO)的数据结构,Java的java.util.Queue接口及其...
根据提供的文档信息,可以看出这是一份关于算法学习的资料,主要涵盖了基础知识、编码实践等内容。接下来,我们将基于这些信息来生成相关的知识点。 ### 基础数据结构 #### 字符串(String) - **定义**: 由字符序列...
根据提供的文件标题“数据结构Java版本.pdf”及描述“适合热爱学习Java的,用于帮助复习文档”,我们可以推测这份文档主要涵盖了使用Java语言实现的各种数据结构的相关知识与实践内容。下面将详细阐述可能涉及的一些...
- 栈(Stack):通常使用数组实现,所以访问元素也是O(1),但是插入和删除操作发生在栈顶,时间复杂度也是O(1)。 - 单链表(Singly-LinkedList):访问元素的时间复杂度为O(n),因为需要从头遍历链表直到找到目标...
7. **列表(List)** - 列表允许重复元素,并保持元素的插入顺序,例如`ArrayList`和`LinkedList`。`ArrayList`是动态数组,适合随机访问;`LinkedList`是链表,适合插入和删除。 8. **映射(Map)** - 映射将键...
- **LinkedList**:基于双向链表实现的List,适用于频繁插入和删除元素的场景。 #### 总结 本章节介绍了表、栈和队列三种重要的数据结构及其在Java中的实现方式。表作为一种灵活的线性数据结构,既可以基于数组也...
- `LinkedList`基于双向链表实现,插入和删除操作高效,但访问元素需要遍历,速度较慢。 2. **HashSet与HashMap** - `HashSet`是不允许重复元素的集合,它基于`HashMap`实现,不保证元素顺序。 - `HashMap`是...
Java提供了单链表(LinkedList)和双向链表(DoubleLinkedList)。 - **栈**:后进先出(LIFO)的数据结构,Java中的`java.util.Stack`类实现了栈操作。 - **队列**:先进先出(FIFO)的数据结构,Java的`java....
- **ArrayList与LinkedList**: 两种常用的列表实现,ArrayList基于数组,LinkedList基于双向链表。 - **HashSet与HashMap**: 基于哈希表的数据结构,HashSet存储不重复元素,HashMap存储键值对。 - **队列与栈**:...
- `LinkedList`:基于双向链表实现,支持高效的插入和删除操作。 - **Map**:存储键值对的集合,不继承自`Collection`接口。 - `HashMap`:基于哈希表实现,键值对无序。 - `TreeMap`:基于红黑树实现,键值对...
Java中的`java.util.Stack`和`java.util.LinkedList`可实现这些功能。 4. **堆**:堆是一种特殊的树形数据结构,通常实现为二叉堆,分为最大堆和最小堆。Java的`java.util.PriorityQueue`就是基于最小堆实现的。 5...
js-stl的链表可能包括双向链表(DoublyLinkedList),允许双向遍历,这对于在列表中间插入和删除元素非常有用。 3. **栈(Stack)**: 栈是一种后进先出(LIFO)的数据结构,常用于函数调用和表达式求值。js-stl的...
ArrayList和LinkedList都是常用的列表实现,但在不同场景下它们的性能差异显著: - **ArrayList**:基于数组实现,适用于随机访问场景,如`get()`和`set()`操作。当需要频繁地进行此类操作时,ArrayList的性能更佳...
List接口的实现类包括ArrayList、LinkedList、Vector和Stack。 - **ArrayList**:基于动态数组实现,提供了快速的随机访问,但在中间插入和删除元素效率较低。 - **LinkedList**:基于双向链表实现,插入和删除...
Java提供了LinkedList类,支持双向链表操作,如插入、删除和遍历。熟悉链表的原理和操作方法能帮助解决许多实际问题。 3. **栈**:栈是一种后进先出(LIFO)的数据结构,Java中的栈实现主要通过java.util.Stack类。...
LinkedList使用双向链表,适合顺序遍历和频繁的插入删除操作,但随机访问较慢。 3. **HashSet** 和 **TreeSet** 实现了Set接口,它们的区别在于元素的排序方式。HashSet基于哈希,元素无序且不重复;TreeSet基于...