去SA面试的时候,面试官问我平时用Java的什么数据结构,答曰:Vector。又问:哪有用过其他的的吗?例如List和Map之类的。答曰:甚少。(自己汗一个,没水平)既然不会就要学习啦。
翻开《Java学习笔记》,里面对对象容器的描述不错。
1. ArrayList和LinkedList
ArrayList使用了数组结构实现List的数据。所以ArraryList用来快速定位对象是非常有效率的。但是如果要对ArraryList中间插入或者删除,效率会非常低。
LinkedList使用链表来实现的List。所以跟ArrayList相反,LinkedList对于插入和删除是非常有优势,反之对于快速定位,是LinkedList的弱项。
1)ArrayListDemo
public class ArrayListDemo {
public static void main(String[] args) {
//用Scanner类,可以轻松获得commander的输入
Scanner scanner = new Scanner(System.in);
List<String> list = new ArrayList<String>();
//在控制台输入,quit退出
while(true) {
System.out.print("Rokey@console# ");
String input = scanner.next();
if(input.equals("quit")) {
break;
}
list.add(input);
}
System.out.print("显示输入:");
//使用5.0的foreach功能对List进行遍历
for(String s:list) {
//5.0的类C的输出格式
System.out.printf("%s ",s);
}
}
}
输出:
Rokey@console# 一二三
Rokey@console# 三二一
Rokey@console# quit
显示输入:一二三 三二一
2)用LinkedList实现的一个字符串栈
/**
*
* @author Rokey
* 用LinkedList构建一个字符栈,先进先出
*/
public class StringStack {
private LinkedList<String> linkList;
public StringStack() {
linkList = new LinkedList<String>();
}
public void push(String s) {
//将元素加入链表第一个位置
linkList.addFirst(s);
}
public String pop() {
//删除链表第一个元素,并返回
return linkList.removeFirst();
}
public String top() {
//返回链表第一个元素,但并不删除
return linkList.getFirst();
}
public boolean isEmpty() {
//检查链表是否为空
return linkList.isEmpty();
}
}
public class StringStackDemo {
public static void main(String[] args) {
//用Scanner类,可以轻松获得commander的输入
Scanner scanner = new Scanner(System.in);
StringStack stack = new StringStack();
//在控制台输入,quit退出
while (true) {
System.out.print("Rokey@console# ");
String input = scanner.next();
if (input.equals("quit")) {
break;
}
stack.push(input);
}
System.out.print("显示输入:");
//使用5.0的foreach功能对List进行遍历
while(!stack.isEmpty()) {
//5.0的类C的输出格式
System.out.printf("%s ", stack.pop());
}
}
}
输出:
Rokey@console# 一二三
Rokey@console# 三二一
Rokey@console# quit
显示输入:三二一 一二三
分享到:
相关推荐
【Java学习笔记】 在Java的学习旅程中,深入理解其核心概念是至关重要的。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和稳定性而受到青睐。本笔记集合将带你逐步走进Java的世界,从基础语法到...
Java集合框架包括数组、ArrayList、LinkedList、HashSet、HashMap等,它们提供了存储和操作对象的有效方式。了解这些容器的特性和适用场景有助于写出更高效的代码。 文件和IO操作是任何编程语言的基础,Java提供了...
- **List**:有序、可重复元素的集合,如ArrayList和LinkedList。 - **Set**:无序、不允许重复元素的集合,如HashSet和TreeSet。 - **Map**:键值对存储,如HashMap和TreeMap。 13. **输入输出流** - **File类...
3. **数组与集合**:数组用于存储固定数量的同类型元素,而集合框架(如ArrayList、LinkedList、HashSet、HashMap等)则提供了动态存储和操作对象的能力。 4. **异常处理**:Java通过try-catch-finally结构进行异常...
{4.2}\ttfamily java.util.LinkedList}{81}{section.4.2} {4.3}贪吃蛇案例}{82}{section.4.3} {4.4}散列表与HashMap}{83}{section.4.4} {4.4.1}java.util.HashMap}{83}{subsection.4.4.1} {4.5}\ttfamily java....
- **容器类**:ArrayList、LinkedList、HashSet、HashMap等,以及它们的特点和使用场景。 - **迭代器**:遍历集合元素的主要方式。 - **泛型**:提高代码的类型安全性,避免类型转换错误。 6. **输入输出流** -...
【Java学习笔记】北大青鸟课程精华解析 Java是一种广泛使用的高级编程语言,以其平台无关性、面向对象的特性以及强大的安全性能而受到广大开发者喜爱。北大青鸟作为知名的IT培训机构,提供了丰富的Java教学资源,这...
这份“java学习笔记总结”涵盖了作者在深入学习Java过程中积累的知识点和实践经验,旨在帮助读者理解和掌握Java的核心概念。 首先,Java的基础部分包括语法、变量、数据类型、运算符和流程控制。Java支持八种基本...
总的来说,《良葛格Java学习笔记(完整版)》是一份覆盖广泛、深度适宜的Java学习资源,它将帮助你系统地理解和掌握这门强大的编程语言,无论你是正在踏入Java世界的新手,还是希望提升技术水平的开发者,都能从中找到...
这份"JAVA学习笔记和例子程序值得看看"的压缩包显然包含了作者在深入学习Java过程中的重要发现和理解,以及帮助深化概念理解的示例程序。让我们来详细探讨一下可能包含的知识点。 1. **基础语法**:Java的基础包括...
Java学习笔记源代码是针对清华大学出版的《Java学习笔记》一书,配套的 JDK1.5 版本的源码。这些源代码旨在帮助读者深入理解Java编程语言,通过实践来加强理论学习,提高编程技能。Java作为一种广泛使用的高级编程...
6. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等容器的使用,以及泛型的概念。 7. **异常处理**:理解何时抛出异常,如何捕获和处理异常,以及try-catch-finally语句块的使用。 8. **输入/输出流**:...
Java集合框架是管理对象的容器,如ArrayList、LinkedList、HashMap等。这部分内容会深入解析各种集合类和接口,以及迭代器、泛型和Lambda表达式的使用。 ### 7. 多线程(7:Multithreading-Java API 实战.md) 多...
**Java学习笔记——Java SE基本知识** Java是一种广泛使用的面向对象的编程语言,以其跨平台、安全性高和可移植性而闻名。Java Standard Edition(Java SE)是Java平台的基础,它提供了开发和运行桌面应用程序、...
4. **集合框架**:讲述ArrayList、LinkedList、HashSet、HashMap等容器的使用和它们之间的区别。 5. **异常处理**:讲解如何捕获和处理运行时错误,以及try-catch-finally语句块的应用。 6. **输入输出与文件操作*...
这个压缩包中包含的"java学习笔记JDK6课件和课本代码"是学习JDK 6.0的重要参考资料,可以帮助你深入理解Java编程的核心概念和实践技巧。 1. **Java基础**:Java是一种面向对象的编程语言,它的基础包括类、对象、...
本资料包含学习笔记和答案,便于自我检验和理解。 1. **Java基础知识**: - **内存管理**:包括垃圾回收机制、内存泄漏及其检测方法、JVM内存模型(堆、栈、方法区等)。 - **数据类型与数据结构**:深入理解原始...
- 用于基本数据类型和对象之间的转换。 - **作用**:装箱和拆箱。 - **构造方法**:`new Integer(10);` - **常用方法**: - `parseInt(String s)`:字符串转整数。 - `toString(int i)`:整数转字符串。 **3.3 ...
【JAVA学习笔记(完整版)】是一份由林信良编写的、专为JAVA初学者设计的学习资料。这份详尽的教程以清晰易懂的PDF文档形式呈现,旨在帮助新手快速掌握JAVA编程语言的核心概念和实用技巧。 在JAVA学习过程中,首先...
Java集合框架是管理对象集合的API,包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如HashMap和TreeMap)等接口及其实现类,提供了丰富的操作和功能。 七、多线程 Java内置对多线程的支持...