容器

容器API在java.util包内。

Connection:Connection接口定义了存取一组对象的方法,子接口Set和List:

  ----Set:无序且不可以重复----HashSet类

  ----List:有序但可以重复----LinkedList/ArrayList类

Map:键值对----HashMap/TreeMap类

容器类对象在调用remove、contains()等方法时,需要比较对象是否相等,这会涉及对象类型的equals()方法和hasCode()方法,对自定义类型,需要重写这两个方法。

  注意:相等的对象应具有相等的hash codes。对象当做map的索引/键的时候,使用hasCode()。

注意:容器内只能添加对象,不能是基本数据类型,因为基本数据类型一般存在栈里,栈里的内容随时可能被清空,print容器即调用容器和内部元素的toString()。

Iterator:

  所有实现了Connecttion接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象。

  Iterator对象称作迭代器,用以方便的实现对容器内容元素的遍历操作。(因为不同容器,遍历方法是不同的)

  iterator接口有如下方法:hasNext(),next(),remove()。

List:

  List接口是Connection的子接口,实现List接口的容器类中的元素是有顺序且可以重复。

  List容器中的元素都对应一个整数型的序号记载其在容器的位置,可以根据序号存取容器元素。

  List容器类有ArrayList,LinkedList等。

  set方法返回被替换的元素对象。

  java.util.Connections类(不是Connection接口)提供了一些静态方法实现了基于List容器的一些算法:

    sort()低到高排序,shuffle()随机排序,reverse()位置逆序排序,fill()用一个对象重写整个List容器,copy()复制,binarySerach()对于顺序List容器,用折半查找对象

所有可以排序的类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法:

  public int compareTo(Object obj)

Array读快改慢,Linked改快读慢,Hash两者之间

Map:

  实现Map接口的类用来存储键值对。

  Map接口的实现类有HashMap和TreeMap等。

  Map类中存储的键值对通过键来标识,所以键值不能重复。

  Map比较用hashCode来比较。

  Map键值都必须为对象,所以基本类型要进行包装。但在java5后支持自动打包解包,Auto-boxing/unboxing,自动将基础类型转换为对象,自动将对象装换为基础类型。自动解包得进行强制类型装换。

posted on 2017-01-05 15:28  zawjdbb  阅读(112)  评论(0编辑  收藏  举报

导航