泛型方法:无论何时,只要你能做到,你就应该尽量使用泛型方法。也就是说,如果使用泛型方法可以取代整个类泛型化,那么就应该只使用泛型方法。
public class LinkedStack<T> {
private/* static */class Node<U> {
U item;
Node<U> next;
Node() {
item = null;
next = null;
}
Node(U item, Node<U> next) {
this.item = item;
this.next = next;
}
boolean end() {
return item == null && next == null;
}
@Override
public String toString() {
return "Node [item=" + item + ", next=" + next + "]";
}
}
private Node<T> top = new Node<T>();
public void push(T item) {
top = new Node<T>(item, top);
}
public T pop(){
T result = top.item;
if(!top.end()){
top = top.next;
}
return result;
}
public static void main(String[] args) {
LinkedStack<String> lss = new LinkedStack<String>();
for(String s : "Phasers on stun!".split(" ")){
lss.push(s);
}
String s;
while((s=lss.pop()) != null){
System.out.println(s);
}
}
}
分享到:
相关推荐
"Java核心基础技术卷详解" ...Java 核心基础技术卷涉及到 Java 的基础语法、面向对象、异常、泛型、IO、枚举、反射机制、集合、内部类等多方面的知识点,为 Java 开发者提供了一个全面的学习指南。
14. List集合的实现类ArrayList和LinkedList:线性和链式存储结构。 15. Iterator迭代器:遍历集合的接口。 16. 泛型:提供类型安全,避免强制类型转换。 17. 增强型for循环:简化集合遍历。 18. List高级:如Queue...
1.1 Java语法:包括变量声明、数据类型(基本类型和引用类型)、运算符、流程控制语句(if、for、while、switch等)以及异常处理机制。 1.2 类与对象:Java是面向对象的语言,类是对象的蓝图,而对象是类的实例。...
Java基础知识谱系图是Java初学者和进阶者的重要参考资料,它涵盖了Java语言的核心概念、语法结构以及常用库。这份最新修订版详细地列出了Java编程的各个方面,旨在为学习者提供一个清晰的学习路径和全面的理解框架。...
5. **反射和注解**:`java.lang.reflect`包提供了反射机制,允许在运行时检查类、接口、字段和方法的详细信息,动态调用方法。注解(Annotation)是元数据的一种形式,可以通过`@interface`关键字定义,用于提供编译...
6. 泛型:Java泛型提高了代码的类型安全性和重用性,允许在集合和其他容器中指定元素类型。 7. 异常处理:Java异常处理通过try-catch-finally语句块来捕获和处理程序运行时可能出现的问题,提供了一种优雅的错误...
7. **泛型**:泛型是Java 5引入的特性,用于增强类型安全,减少类型转换的麻烦。 8. **反射机制**:Java反射机制允许在运行时动态地获取类的信息并操作类的对象,包括创建对象、调用方法、访问字段等。 9. **枚举*...
15. **Stream API**:Java 8的Stream API提供了对集合进行操作的新方式,支持并行处理和链式操作。 这些知识点在《Java语言程序设计-原书第10版》中都有详细讲解,并在提供的答案及源代码中得以实践。通过深入学习...
- **泛型**: 提高代码安全性,限制集合只能存储特定类型的对象。 5. **输入输出流** - 文件I/O:使用FileReader/Writer处理文本文件,FileInputStream/FileOutputStream处理二进制文件。 - 缓冲流:...
4. **集合框架**:Java集合框架提供了多种数据结构,如ArrayList、LinkedList、HashSet、HashMap等,它们用于存储和操作对象,提供了丰富的操作方法,如添加、删除、查找元素等。 5. **输入/输出(I/O)**:Java的I...
10. **泛型**:泛型提供了一种方式来限制容器中存储的数据类型,增强类型安全性,并减少类型转换。 11. **注解(Annotation)**:注解提供元数据,可以用于编译时或运行时处理,如Spring框架中的依赖注入就是通过...
第13章“接口和内部类”深入探讨了Java中接口的作用,以及如何使用内部类来封装相关逻辑。 第14章“泛型和ArrayList类”展示了泛型在类型安全方面的应用,以及ArrayList作为动态数组的使用。 第15章“链式数据结构...
8. **异常处理**:Java提供了异常处理机制,通过try-catch-finally语句块捕获和处理程序运行时可能出现的错误。 9. **数组**:数组是相同类型的数据集合,Java支持一维、二维及多维数组,并有数组遍历和操作的方法...
4. **反射**:Java反射机制允许程序在运行时动态地获取类的信息并调用其方法,源码中可能涉及类、接口、构造函数和方法的反射操作。 5. **注解(Annotation)**:源码可能包含自定义注解和元注解的使用,以及如何通过...
14. **Stream API**:同样在Java 8中加入,提供了对集合进行操作的链式编程风格,便于数据过滤、映射和归约。 15. **日期和时间API**:Java 8改进了日期和时间的处理,`java.time`包下的`LocalDate`、`LocalTime`、...
泛型类、泛型方法和泛型接口都可以使用类型参数,限制了容器中存储的元素类型。 十一、反射 Java反射API允许程序在运行时动态获取类的信息并调用其方法。Class类代表类的运行时信息,Constructor、Method和Field类...
11. **泛型**:自Java 5起引入,泛型提高了代码的类型安全性,允许在类、接口和方法中使用类型参数。 12. **注解(Annotations)**:从Java 5开始,注解提供了一种元数据的方式,可以用来提供编译器或运行时的信息...
- List、Set、Map接口:Java集合框架提供了丰富的数据结构,如ArrayList、LinkedList、HashSet、HashMap等,用于存储和操作数据。 - 泛型:泛型可以限制集合元素的类型,提高安全性,同时在编译时提供类型检查。 ...
2. **集合框架**:`java.util`包下的`ArrayList`、`LinkedList`、`HashMap`、`HashSet`等,它们是存储和管理数据的基础。 3. **IO流**:`java.io`包中的输入输出流类,如`FileInputStream`、`FileOutputStream`、`...
- 泛型:掌握泛型类、泛型接口、泛型方法等用法,以及类型擦除的概念。 - 多线程:理解线程的创建、同步、并发控制,如synchronized、wait()、notify()等。 - 反射:了解反射机制,如何动态调用类、方法和字段。 ...