我读过Effective Java,它强调尽可能使用接口作为返回类型。扩展论点,我想知道以下哪种方法是首选/被认为是一种好的做法。
选项1:
Map<Integer, Set<Integer>> map = new HashMap<Integer, Set<Integer>>(); // Interface 'Set' declared in type
for (int v = 0; v < graph.getNumberOfVertices(); v++) {
map.put(v, new HashSet<Integer>());
}
选项 2:
Map<Integer, Set<Integer>> map = new HashMap<Integer, HashSet<Integer>>(); // Class 'HashSet' declared in type.
for (int v = 0; v < graph.getNumberOfVertices(); v++) {
map.put(v, new HashSet<Integer>());
}