所以,如何去选择还是取决于实际的使用情况。你需要考虑下面几个问题。你的程序是插入/删除的操作多,还是查找的操作多?数组里最多可能存储多少元素?排序的频率是多少?以及你的性能基准测试的结果是怎样的?
Q:怎么实现一个不可变集合?
A:这个功能在Collections类里实现了,它通过装饰模式实现了对一般集合的封装。
1
2
3
4
5
6
7
8
9
10
11
|
public class ReadOnlyExample { public static void main(String args[ ]) { Set<string> set = new HashSet<string>( ); set.add( "Java" ); set.add( "JEE" ); set.add( "Spring" ); set.add( "Hibernate" ); set = Collections.unmodifiableSet(set); set.add( "Ajax" ); // not allowed. } } |
Q:下面的代码的功能是什么呢?其中的LinkedHashSet能用HashSet来取代吗?
1
2
3
4
5
6
7
8
9
|
import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; public class CollectionFunction { public <e> List<e> function (List <e> list) { return new ArrayList<e>( new LinkedHashSet<e>(list)); } } |
原文转自:http://www.importnew.com/871.html