java开发经验-面向接口编程中迭代器的妙用
使用接口进行编程
定义接口
/**
* 5:36:11 5:37:02 5:37:15 5:37:45 6:19:54 6:21:04 6:22:22 6:23:04
* @author Administrator
* 访问权限 类 包 子类 其他包 描述
public ∨ ∨ ∨ ∨ 其它楼房的人也能用我, 外星人不能用我
protect ∨ ∨ ∨ × 只有我自己和与我住在同一个楼房里的人以及我的子孙能用我
default ∨ ∨ × × 只有我自己和与我住在同一个楼房里的人能用我
private ∨ × × × 只有我自己可以用我
*
*/
public interface Graph {
public int V();
public int E();
public void addEdge(int v,int w);
void show();
public boolean hasEdge(int v,int w);
public Iterable adj(int v);
}
通过定义迭代器对邻接矩阵和邻接表图的遍历操作进行了统一
邻接矩阵实现Graph
public class DenseGraph implements Graph{
private int[][] map;
private int N;
private int M;
private boolean isdirected;
public DenseGraph (int n, boolean isdirected) {
super();
map = new int[N][N];
N = n;
M = 0;
this.isdirected = isdirected;
}
@Override
public int V() {
// TODO Auto-generated method stub
return N;
}
@Override
public boolean hasEdge(int v, int w) {
// TODO Auto-generated method stub
if(map[v-1][w-1]!=0) return true;
return false;
}
@Override
public Iterable adj(int v) {
// TODO Auto-generated method stub
List list = new ArrayList();
for(int i=0;i
关注
打赏