第一章 ——集合框架
集合包含3个重要接口:Collection(无序可重复)/Set(无序不可重复)/List(有序,可以重复)
AbstractCollection是一个抽象类,他实现了Collection接口中的某些方法。AbstractList和AbstractSet都继承于此.
SortedSet接口继承了Set接口,其是有序的;
编程测试Arraylist 可以存在相同的元素,存储是有序的,按照添加顺序
编程测试HashSet 不可以存在相同的元素,存储是无序的。
编程测试TreeSet(继承AbstractSet同时实现了SoredSet )存放同一类型数据并按照由低到高顺序排列(测试了int double)混入其他类型数据运行会报错。
Iterator接口声明了三个方法 hasNext() next() remove().其中remove删除的是迭代器最后一次返回的元素。
对于List来说 ListIterator更加好用,它直接继承自Iterator 但是它除了可以得到下一个元素外还可以得到上前一个元素
关于ListIterator中next的问题 li.next();已经调到下一个。所以如何取list中的第一个数据需要注意。
映射(map)映射实际上是键值对的集合,map接口中定义了一些基本操作。put添加一对数据。但是映射中不包含重复的键,若插入的键已经存在,新值将覆盖旧值。使用get取出值,使用keySet方法可以返回一个set,其中包含了映射中所有的键。使用values可以返回一个Collection其中包含了该键对应的所有的值。
Map( TreeMap AbstractMap Attributcs HashTable StoredMap----等)
抽象类AbstractMap 实现了接口Map中的方法,为其子类的实现提供了一个框架。
StoredMap继承与Map,它保证映射中的键是按照升序排列的。或者按照构造时给定的Comparator所决定的顺序。
HashMap是在hashTable基础上实现了Map接口的方法,它基本上与HashTable类是等价的,除了两点不同:hashMap不是同步的,因此在put和get的时候应该由程序员来保证操作的同步。HashMap允许键和值为null.
TreeMap按照key由小到大排列结果。
关于iteratord的研究:迭代器模式又叫做游标模式。遍历容器的内容
排序:数组的排序。Arrays提供了一些列的sort()方法来对数组进行排序(必须所有的 数据可以两两比较)要实现对象数组排序,要么这个类实现了Comparable接N 要么为sort方法提供一个实现comparator接口的类
关于comparator接口中声明了一个compareTo(Object 0)方法,如果一个类实现了该接口,那么sort就可以调用某对象的这个方法与另一个方法比较 若小于 返回附属,大于返回正数。