我知道在通用出来之前就会问这个问题.在Array强制执行返回类型的情况下,Array确实胜出了一些,它更加类型安全.
但是现在,使用最新的JDK 7,每次我设计这种类型的API时:
public String[] getElements(String type)
vs
public List<String> getElements(String type)
Run Code Online (Sandbox Code Playgroud)
我总是在努力想出一些很好的理由来回归一个阵列或者其他方式.在选择String []或List作为API的返回类型时,最佳做法是什么?或者它是马的课程.
我脑子里没有特殊情况,我更希望找到一个通用的利弊比较.
Mar*_*nik 14
如果您正在编写公共API,那么您的客户通常会更喜欢集合,因为它们更容易操作并与代码库的其余部分集成.另一方面,如果您希望在高度性能敏感的上下文中使用公共API,则首选原始数组.
如果您正在编写此内容供自己使用,那么最好从集合类型开始,只有在涉及它的确定性能问题时才切换到数组.
可以在运行时通过反射确定数组的元素类型,因此如果该特定功能对您很重要,那么优选数组将是另一种情况.
ami*_*mit 10
这是部分清单
阵列的优点:
列表的优点:
hashCode(),equals()这可能是至关重要的.型号安全:
String[] arr1 = new String[5];
Object[] arr2 = arr1;
arr2[0] = new Object(); //run time error :(
List<String> list1 = new LinkedList<String>();
List<Object> list2 = list1; //compilation error :)
Run Code Online (Sandbox Code Playgroud)