最常见的Java常见面试题问答(5)

发表于:2013-01-24来源:ImportNew作者:不详点击数: 标签:java
所以,如何去选择还是取决于实际的使用情况。你需要考虑下面几个问题。你的程序是插入/删除的操作多,还是查找的操作多?数组里最多可能存储多少元

  所以,如何去选择还是取决于实际的使用情况。你需要考虑下面几个问题。你的程序是插入/删除的操作多,还是查找的操作多?数组里最多可能存储多少元素?排序的频率是多少?以及你的性能基准测试的结果是怎样的?

  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