参考解答
(1)根据需要选择正确的集合类型。比如,如果指定了大小,我们会选用Array而非ArrayList。如果我们想根据插入顺序遍历一个Map,我们需要使用TreeMap。如果我们不想重复,我们应该使用Set。
(2)一些集合类允许指定初始容量,所以如果我们能够估计到存储元素的数量,我们可以使用它,就避免了重新哈希或大小调整。
(3)基于接口编程,而非基于实现编程,它允许我们后来轻易地改变实现。
(4)总是使用类型安全的泛型,避免在运行时出现ClassCastException。
(5)使用JDK提供的不可变类作为Map的key,可以避免自己实现hashCode()和equals()。
(6)尽可能使用Collections工具类,或者获取只读、同步或空的集合,而非编写自己的实现。它将会提供代码重用性,它有着更好的稳定性和可维护性。
相似问题
当一个集合被作为参数传递给一个函数时 如何才可以确保函数不能修改它?
当一个集合被作为参数传递给一个函数时,如何才可以确保函数不能修改它?
什么时候更适合用Array?
什么时候更适合用Array?
为何没有像Iterator.add()这样的方法 向集合中添加元素?
为何没有像Iterator add()这样的方法,向集合中添加元素?
Comparable和Comparator接口有何区别?
Comparable和Comparator接口有何区别?
我们如何对一组对象进行排序?
我们如何对一组对象进行排序?
