黑马程序员——关于List体系结构和特点
来源:互联网 发布:一洋seo管家 编辑:程序博客网 时间:2024/06/03 20:23
List特点及体系:
元素有序,可以重复。
|--ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
|--LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
|--Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。由于线程安全,所以查询的效率也低。一般不用。
什么时候使用哪种具体的集合类呢?
A:如果将来存储数据大部分就是为了显示操作,用ArrayList
B:如果将来存储数据大部分在做变更操作,用LinkedList
C:如果涉及到线程安全问题,用Vector
如果你不知道用哪个,就用ArrayList。
ArrayList(掌握)
基本功能:Add(), Insert(), Delete(), Find().
LinkedList(掌握)
特有功能:
A:添加元素 addFrist()addLast()
B:删除元素 removeFirst() removeLast()
C:获取元素getFirst() getLast()
Vector(了解)<基本已经不用这个>
特有功能:
A:添加元素: addElement() -- add()
B:获取元素: elementAt() -- get()
C:类似迭代器的功能:
Enumeration elements()
hasMoreElements()
nextElement()
用ArrayList存储元素对象并遍历,代码体现:
ArrayList<String> array = new ArrayList<String>();
array.add("haha");
array.add("hehe");
array.add("xixi");
Iterator<String> it = array.iterator();
while(it.hasNext())
{
String s = it.next();
System.out.println(s);
}
总结:List : 次序是List最重要的特点:它保证维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(这只推荐LinkedList使用。)一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和移除元素。
ArrayList : 由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和移除元素。因为那比LinkedList开销要大很多。
LinkedList : 对顺序访问进行了优化,向List中间插入与删除的开销并不大。随机访问则相对较慢。(使用ArrayList代替。)还具有下列方法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(), 这些方法 (没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。
细节问题:
A:并发修改问题
解决方案:
要么全部使用集合对象,要么全部使用迭代器(ListIterator)对象操作。
B:集合可以存储基本数据类型,其实存储不是基本数据类型,而是装箱后的对象。
- 黑马程序员——关于List体系结构和特点
- 黑马程序员:Java基础——List集合共性方法,Iterator迭代和集合具体对象的特点
- 黑马程序员——Map集合概述和特点
- 黑马程序员——API-集合框架--集合的概念、List的特点、泛型
- 黑马程序员——List集合中ArrayList、linkedList、Vector的数据结构及特点
- 黑马程序员 集合List接口的特点
- 黑马程序员——多态特点
- 黑马程序员—JAVA异常特点
- 黑马程序员—Map集合特点
- 黑马程序员—Collection类特点
- 黑马程序员—JAVA反射特点
- 黑马程序员—JAVA代理特点
- 黑马程序员——集合类(list和set)(一)
- 黑马程序员java学习—集合框架List和Set
- 黑马程序员—java基础_集合List和Set
- 黑马程序员——高新技术---Java基础-集合特点和数据结构总结
- 黑马程序员_java函数特点和应用
- 黑马程序员----------List三个子类的特点以及应用场景
- Cracking the coding interview--14.1-14.6
- C语言 关于#define 与const 一点心得
- DirectShow函数
- MySQL整理总结
- Bitmap与DrawAble与byte[]与InputStream之间的转换工具类
- 黑马程序员——关于List体系结构和特点
- hibernate学习记录7
- ZXing的编译
- OCM_Session1_7_Schema Creation
- osx中用于多选一可用NSSegmentedControl
- markdown use
- 1013. Battle Over Cities (25)
- 在Linux下安装和使用MySQL
- Zookeeper概述