第十一章 持有对象

11.2基本概念

java容器类基本用途保存对象,划分两个概念

  • 1)Collection:存放一组对象的方式
  • 2)Map:有映射关系的数据

11.2添加元素

使用Arrays.asList() 生成的数组是不能进行add和delete的,因为他底层是采用数组存储,大小是固定了.

容器类型 :
ArrayList
LinkedList
HashSet(hash算法)
TreeSet(二叉排序树按照结果的生序排序)
LinkedHashSet
HashMap
TreeMap
LinkedHashMap

List比较  ArrayList 数据查找比较方便,但是中间插入,删除的代价会比较高,涉及到需要移动数据.
LinkedList 中间插入数据,和删除 非常廉价.而且具有栈的方法.新代码中stack可以用LinkedList代替
迭代器:
Iterator
ListIteretor (只能用于List 可以双向滑动)
PriorityQueue优先级队列.

总结:
1.如果要大量的随机访问使用ArrayList,如果要经常向表中间插入或删除元素用LinkedList
2.需要使用各种Queue以及栈的行为,使用LinkedList
3.hashMap设计快速访问,treeMap保持键值处于排序状态,LinkedHashMap保持按元素插入的顺序
4.set :hashSet 快速访问,treeSet排序,LinkedHashSet 插入顺序
5.新程序中不要使用过时的vector,hashtable,stack

通过迭代器模式,能更好的看懂java.util 容器包


image.png

推荐阅读更多精彩内容