集合和数据结构
1 数学集合:
2 在软件开发中应用广泛:商品列表
3 Java中使用接口Collection定义了集合的概念
Collection接口中定义了集合的功能抽象:
添加元素,删除元素,集合的并,集合的交,
集合差,...
4 Java提供了集合的实现类: ArrayList,
LinkedList, HashSet等
5 LinkedList 是使用双向循环链表实现的线性表集合
ArrayList 是使用变长数组实现的线性表集合
6 线性表(List接口)是经常使用的.
7 Set 无序且不重复
HashSet(利用HashMap实现, 就是只有key的HashMap)
List
1 ArrayList 新
2 Vector 旧(1.2以前)
Map
1 HashMap 新
2 Hashtable 旧 (1.2以前)
集合的应用
贪吃蛇
1 蛇包含节点的(线性)集合,
节点在行列坐标(i,j)的位置
2 蛇可以走, 继续向当前方向走一步
也可以向指定方向走一步, 不能反向
蛇可以吃, 一个坐标上的东西.(以后再考虑)
3 蛇在一个面板中运行, 面板控制行列坐标
面板可以提供文字界面的打印方法, 显示出一条蛇
4 重构Worm类提供检查坐标是否在蛇身上的方法
5 提供测试类测试蛇的面板运行.
List 集合的实现
1 LinkedList 采用双向循环链表实现
2 ArrayList 变长数组算法实现 新的 快 非线程安全
3 Vector 变长数组算法实现 早期提供 慢 线程安全
集合的迭代(遍历)(模仿了数鸡蛋的方式)
1 java 接口 Iterator(迭代器) 描述了逐一遍历的
方法.
2 Iterator 描述了一个顺序结构, 并且有一个游标
概念, 游标默认在第一个元素之前. 调用方法
hasNext() 可以检查游标是否有下一个元素.
使用next() 方法移动游标,并且返回当前游标指向的
元素. 这两个方法经常与while循环组成模式化
结构, 用来遍历集合内容. 是常见的标准结构.
3 凡是对集合的遍历都应采用Iterator接口实现.
编程中十分常见.
4 集合在迭代期间不能调用集合的更新方法 add()
remove set 等
5 如果需要迭代时候删除集合内容, 可以调用迭代器的
删除方法 ite.remove() 删除当前元素.