《Think in Java》笔记

Containers

  • Set

      HashSet, TreeSet, LinkedHashSet

  Set中不允许有重复元素存在。HashSet中元素的顺序是随机的,TreeSet中的元素默认按照升序排列(内部实现是红黑树),LinkedHashSet按照插入时的先后排列。

  • Map

     HashMap, TreeMap, LinkedHashMap

     HashMap使用的查找算法与HashSet是一样的,事实上HashSet就是用HashMap来实现的;TreeMap默认按照升序排列;LinkedHashMap按照key-value插入的顺序排列,同时保持和HashMap一样的查找速度(没有看源码验证过)。

  • Iterator

    Philosophy of Iterator: separate the operator of traversing a sequence(List, Set, Queue) from the underlying structure of the sequence. Iterator unify access to containers.

  • ListIterator

    ListIterator是Iterator的子类型,Iterator只能向前遍历,而ListIterator是双向的,还可以使用set()方法替换之前访问的元素,使用listIterator()获得一个指向List起始位置的ListIterator,另外还能通过传入一个参数n给listIterator()方法获得一个指向索引为n的ListIterator。

  • Foreach

    如果你希望你自定义的类能够在for-each语句中使用,那么你的类必须实现Iterable接口。Iterable接口中的Iterator()方法返回一个Iterator。

 

 

 

posted @ 2013-11-13 00:02  StrikeW  阅读(199)  评论(0编辑  收藏  举报