迭代器与Vector

来源:7-3 相邻结点迭代器

慕勒9548534

2019-07-25

public Iterable<Integer> adj(int v) {
    assert v >= 0 && v < n;
    Vector<Integer> adjV = new Vector<Integer>();
    for(int i = 0 ; i < n ; i ++ )
        if( g[v][i] )
            adjV.add(i);
    return adjV;
}
--------------------------------------------------
public Vector<Integer> adj(int v) {
    assert v >= 0 && v < n;
    Vector<Integer> adjV = new Vector<Integer>();
    for(int i = 0 ; i < n ; i ++ )
        if( g[v][i] )
            adjV.add(i);
    return adjV;
}

bobo老师 在图的邻边遍历的方法中(java版)中,遍历方法为什么选择返回的是迭代器 返回一个vector集合不可以么,即上面第二段代码所示。

写回答

1回答

liuyubobobo

2019-07-25

可以:)


返回迭代器的意义,是隐藏实现细节。用户不需要知道内部实现是用Vector还是ArrayList还是LinkedList甚至是TreeSet或者是HashSet,用户只需要知道它是可迭代的,然后能够迭代其中的元素,就够了:)


继续加油!:)

0
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程