java高级编程第一章——集合 笔记

来源:互联网 发布:程序员买什么显示器 编辑:程序博客网 时间:2024/06/10 05:54

第一章   ——集合框架

 

集合包含3个重要接口:Collection(无序可重复)/Set(无序不可重复)/List(有序,可以重复)

 

AbstractCollection是一个抽象类,他实现了Collection接口中的某些方法。AbstractListAbstractSet都继承于此.

SortedSet接口继承了Set接口,其是有序的;

 

编程测试Arraylist 可以存在相同的元素,存储是有序的,按照添加顺序

编程测试HashSet 不可以存在相同的元素,存储是无序的。

编程测试TreeSet(继承AbstractSet同时实现了SoredSet )存放同一类型数据并按照由低到高顺序排列(测试了int double)混入其他类型数据运行会报错。

 

Iterator接口声明了三个方法  hasNext() next()        remove().其中remove删除的是迭代器最后一次返回的元素。

 

对于List来说 ListIterator更加好用,它直接继承自Iterator 但是它除了可以得到下一个元素外还可以得到上前一个元素

关于ListIteratornext的问题 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不是同步的,因此在putget的时候应该由程序员来保证操作的同步。HashMap允许键和值为null.

TreeMap按照key由小到大排列结果。

 

关于iteratord的研究:迭代器模式又叫做游标模式。遍历容器的内容

 

 

排序:数组的排序。Arrays提供了一些列的sort()方法来对数组进行排序(必须所有的 数据可以两两比较)要实现对象数组排序,要么这个类实现了ComparableN 要么为sort方法提供一个实现comparator接口的类

 

关于comparator接口中声明了一个compareTo(Object 0)方法,如果一个类实现了该接口,那么sort就可以调用某对象的这个方法与另一个方法比较 若小于 返回附属,大于返回正数。