1.对List的操作
Collections.nCopies(4, new StringAddress("Hello")));//复制4份
Collections.fill(list, new StringAddress("World!"));//替换容器中所有对象
2.Collection
// Make an array from the List:
Object[] array = c.toArray();
// Make a String array from the List:
String[] str = c.toArray(new String[0]);
3.享元(Flyweight design)
Countries.java
4.可选操作Optional Operation
Arrays.asList() 返回固定尺寸的List
Collections.unmodifiableList() 产生不可修改的列表
List<String> list = Arrays.asList("A B C D E F G H I J K L".split(" "));
test("Modifiable Copy", new ArrayList<String>(list));
test("Arrays.asList()", list);
test("unmodifiableList()",Collections.unmodifiableList(new ArrayList<String>(list)));
5.单向链表(简单实现)
Ex 模拟单向链表的增删(待编辑)
6.Implement Comparable
@Override
public int compareTo(Ex11 o) {
int res = this.count - o.count;
return res < 0 ? -1 : (res == 0 ? 0 : 1);
}
7. Deque
双向队列
8. 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。
9.java.util.Properties extends Hashtable<Object,Object>
10.SortedMap(TreeMap唯一实现)
Comparator comparator()
firstKey()
SortedMap subMap(K fromKey,
K toKey) //唯一可以取子集的Map类
11.访问顺序排序
Map linkedMap = new LinkedHashMap<Integer, String>(16,
0.75f, true);
12. HashMap 的 put 与 HashSet 的 add
由于 HashSet 的 add() 方法添加集合元素时实际上转变为调用
HashMap 的 put() 方法来添加 key-value 对,当新放入 HashMap 的 Entry 中 key 与集合中原有 Entry 的 key 相同(hashCode() 返回值相等,通过 equals 比较也返回 true),新添加的 Entry 的 value 将覆盖原来 Entry 的 value,但 key 不会有任何改变,因此如果向 HashSet 中添加一个已经存在的元素,新添加的集合元素(底层由
HashMap 的 key 保存)不会覆盖已有的集合元素。
13.
HashCode作用
Equals作用
String的比较
14.对每个容器对象,底层数据分析(比如:LinkedList链表)
ArrayList
HashMap
HashSet
15.容器测试效率
对于List选择
ArrayList作为默认首选,如果需要经常表中间插入和删除,才去选择LinkedList
如果使用固定数量的元素,可以选择背后有数组支撑的List(Arrays.asList()产生的列表),也可选择真正的数组
对于set的选择
HashSet性能上总是比TreeSet好
对于插入操作,LinkedHashSet比HashSet的代价更高
16.Collections方法
17. Fail fast机制(快速报错)
final Entry<K,V> nextEntry() {
if (modCount != expectedModCount)
throw new ConcurrentModificationException();
由所有HashMap类的“collection 视图方法”所返回的迭代器都是快速失败的:在迭代器创建之后,如果从结构上对映射进行修改,除非通过迭代器本身的 remove 方法,其他任何时间任何方式的修改,迭代器都将抛出 ConcurrentModificationException。
18. Holding references
分享到:
相关推荐
ThinkingInJava
ThinkinginJava cn.chm
讲解java的图书
thinkingin,java,thinkinginjava,帮助文档 thinkingin,java,thinkinginjava,帮助文档 thinkingin,java,thinkinginjava,帮助文档 thinkingin,java,thinkinginjava,帮助文档 thinkingin,java,...
《Thinking in Java》是Bruce Eckel的经典之作,它深度探讨了Java编程语言的各个方面,是许多Java程序员必备的参考书籍。这本书以其详尽的解释、丰富的示例和深入的理论见解,深受全球开发者喜爱。"java in Thinking...
《Thinking in Java》是Bruce Eckel的经典著作,它深入浅出地介绍了Java编程语言的核心概念和技术。这本书的第三版(3rd edition)配套代码库"ThinkingInJava-3rd-edition-code"为读者提供了丰富的实践示例,帮助...
《Thinking in Java》是Bruce Eckel的经典之作,被誉为学习Java编程的权威指南。该书以其深入浅出的方式,详尽地介绍了Java语言的核心概念和技术。第三版是此书的一个重要里程碑,它涵盖了Java语言的诸多关键特性,...
《Thinking in Java》不仅涵盖了基础语法,如变量、控制结构、类和对象,还深入探讨了高级主题,如多线程、网络编程、集合框架以及反射机制。 在书中,Eckel先生通过丰富的示例和解释,帮助读者理解面向对象编程的...
根据提供的信息,“study_ThinkinginJava_”压缩包文件包含了你在阅读这本书时所做的课后练习题和笔记,这将是一个宝贵的自我学习和复习资源。 在《Thinking in Java》中,你可以找到以下关键知识点: 1. **基础...
《Thinking in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,深受程序员喜爱。这本书全面深入地讲解了Java语言,不仅适合初学者入门,也适合有经验的开发者进一步提升技能。在这个压缩包中,包含的是与...
ThinkingInJava 第三版 中文
thinkinginjava 中文 4th edition pdf
《Thinking in Java》是Java编程领域的一本经典著作,它深入浅出地讲解了Java语言的核心概念和技术。以下是对笔记中部分关键知识点的详细解析: 1. **类与对象**: - 类是对象的蓝图,它定义了对象的数据属性...
《Thinking in Java》是Bruce Eckel的经典编程教材,它深入浅出地介绍了Java语言的核心概念和技术。这份资源包含了书中的源代码以及练习题的答案,对于学习和深入理解Java编程非常有帮助。 首先,TIJ4-code.rar这个...
《Thinking in Java》是 Bruce Eckel 的经典编程著作,它深入浅出地介绍了Java语言的各个方面,被广大程序员视为学习Java的权威指南。这个中文版包含第1至14章的内容,其中1-11章以PDF格式呈现,12-14章则以CHM...