List或String Array作为方法参数

时间:2012-07-25 10:10:06

标签: java arrays collections arguments

我处于一种奢侈的位置,我可以自由选择是否将以下方法实现为字符串数组:

public void addColumns(String[] columns)
{
    for(String column : columns)
    {
        addColumn(column);
    }
}

或作为字符串集合:

public void addColumns(List<String> columns)
{
    for(String column : columns)
    {
        addColumn(column);
    }
}

实施此选项的最佳选择是什么?我正在使用Java。

4 个答案:

答案 0 :(得分:3)

1。在您使用Java时,我希望您使用Collection

2。 Java,处理器变得足够快,您不会注意到数组或集合之间的任何性能差异。

3。 Collection为您提供了很多灵活性,以及​​从列表,设置,地图等中进行选择的选择.....适用于您的需要。

4。 List<String>将成为我认为的方式。

答案 1 :(得分:2)

string[]List<string>都允许该方法改变它们。

您实际上只需要使用Iterable<string>来实现您在示例中所做的操作。

我使用Iterable<string>因为它表达了你需要的最小值(你可以迭代它)。这还有一个额外的好处,即您可以将string[]List<string>传递给方法。

使用最受限制的类型,您可以传达该方法的意图。

答案 2 :(得分:2)

完全取决于使用情况。

如果您想保持它的重量轻,请使用String[]

如果您正在进行插入删除排序和其他操作,或者将来可能会使用它们,请转到List<String>

答案 3 :(得分:0)

首先想想你将如何调用你的方法。你是否已经拥有String数组,或者你必须构建它?你打算如何建造它?选择能够降低客户端代码工作量的解决方案。