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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?