【发布时间】:2016-03-10 19:47:14
【问题描述】:
我正在创建一个需要支持两种方法的数据类型:
length(int v, int w)
length(Iterable<Integer> v, Iterable<Integer> w)
第一个是第二种方法的特例,我想重用代码。如何有效地将整数转换为 Iterable 对象?
到目前为止,我使用了一个 ArrayList。
ArrayList<Integer> a = new ArrayList<Integer>(); a.add(v);
ArrayList<Integer> b = new ArrayList<Integer>(); b.add(w);
return length(a,b);
谢谢。
【问题讨论】:
-
这两种方法的作用是什么?
-
在这种特殊情况下,它返回两个节点或两组节点之间的最短路径的长度。但这个问题是针对一般情况的。
-
你的解决方案有什么问题?
-
您可以使用
Collections.singleton()库方法将单个对象转换为该对象的可迭代对象。所以你的 3 行解决方案变成了单行length(Collections.singleton(v), Collections.singleton(w));
标签: java arraylist integer overloading iterable