将整数转换为可迭代对象以促进代码重用

时间:2015-12-06 00:47:28

标签: java arraylist integer overloading iterable

我正在创建一个需要支持两种方法的数据类型:

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);

感谢。

1 个答案:

答案 0 :(得分:0)

为什么要使用相同的方法?我认为最好使用两种不同的方法,这就是重载的目的。 当你使用Iterable你必须使用java的自动装箱来创建Integer然后创建ArrayList时,它比使用两个不同的方法更糟糕,也让代码更简单到读。 但是如果你只想使用Iterable,我会使用这段代码(使用较少的代码)或@sisyphus代码:

length(Arrays.asList(1), Arrays.asList(2));

varargsArrayList转换合并后,您可以以一种很酷的方式创建ArrayList

在这里你可以看到工作代码: code Iterable

相关问题