Kir*_*han 10 java collections ejb java-ee
我最近被告知,集合应该优先于List作为EJB方法的返回值.这个论点是,通常集合更通用,即允许您在不影响客户端的情况下更改基础数据结构.如果这是您希望作为设计师的灵活性,那么使用集合将更有意义.但是,返回一个数组而不是集合会不会更有意义?
什么是性能影响,如果有的话?
提前致谢.
Boz*_*zho 29
然后,你通常有4个选项:List,Set, Collection和Iterable.它取决于你想要包含的语义.
Set ListCollectionIterable(注:也有更具体的语义一些集合接口:Queue,Deque,Map,Bag,Multiset,等等-但它会是相当明显的,当你需要返回它们)
一般而言,集合优于数组,尤其是Java5之后,它们被转换为通用集合.这为您提供了类型安全性,以及许多在数组中不可用的潜在额外功能(例如,设置/队列等行为) - 这些功能实际上根本无法与数组直接比较.在集合中,ArrayList是数组的直接类比,并且 - 在数组之上实现 - 其性能可与本机数组相媲美.
至于Collection vs List(或其他一些更具体的界面),我个人更喜欢更具体的界面,因为例如List vs a Set的特征和行为是非常不同的.在设计良好的界面中,您应该事先知道(并指定)是否返回例如Set,Dequeue或List.如果你返回一个Collection,你的所有客户端都可以做(除了添加/删除元素之外)迭代它,这对他们来说可能是不够的.
| 归档时间: |
|
| 查看次数: |
8487 次 |
| 最近记录: |