去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面试题】ArrayList和LinkedList区别
ArrayList-LinkedList-源码.rar
List最全总结( ArrayList, LinkedList, 匿名类)
ASP .NET - ArrayList对象ASP .NET - ArrayList对象ASP .NET - ArrayList对象ASP .NET - ArrayList对象
一般大家都知道ArrayList和LinkedList的大致区别: ... ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储一系列的String或者Integer。那
{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....
1.List是接口类,ArrayList和LinkedList是List的实现类 2.ArrayList是动态数组(顺序表)的数据结构 3.LinkedList
javalist数据结构_Java数据结构-------List 三种List:ArrayList,Vector,LinkedList 类继承关系图 ArrayList和Vector通过数组实现,⼏乎使⽤了相同的算法;区别是ArrayList不是线程安全的,Vector绝⼤多数⽅法做了...
ArrayList、LinkedList、Vector区别简介。
关于arraylist和linkedList的区别
测试ArrayList和LinkedList的add方法
ArrayList、LinkedList、 Vector、Map 用法比较
2.在ArrayList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动 3.LinkedList不支持高效的随机元素访问 4.ArrayList的
该文件内容主要是关于LinkedList在新增/删除元素时效率是否比 ArrayList 高,对比插入和删除时需要花费的时间
day14-ArrayList集合 1.ArrayList 1.1ArrayList类概述【理解】 什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变 ArrayList集合的特点 底层是数组实现的,长度可以变化 泛型的使用 ...
10.ArrayList和LinkedList基于动态数组,连续内存存储,适合下标访问(随机访问)扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,然后
Java 集合框架(2_9)-Collection - ArrayList 源码解析
比较ArrayList,LinkedList,Vector三者随机读取,插入,删除性能。
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
java提高篇(二一)-----ArrayList.pdf