JCF(2)
Iterable
Iterator
Collection
Map
List
Set
ArrayList
LinkedList
HashSet
HashMap
Vector
LinkedHashSet
LinkedHashMap
HashTable
不限容的大仓库ArrayList
遍历ArrayList中的元素中的元素遍历
方式1方式循环+小标循环小标size()方式2—一种更高效更优雅的迭代方法方式一种更高效更优雅的迭代方法
Java.util.Iterator:Java.util.Iterator:迭代器Iteratoriterator=dogHouse.iterator();hasNext()next()方式3方式for(Objectobj:dogHouse){((Dog)obj).bark();}
不限容的大仓库ArrayList
ArrayList的自定义排序的自定义排序
java.util.Collections要求:中的元素必须实现Comparable要求:ArrayList中的元素必须实现中的元素必须实现接口,接口,why?情景:如果觉得狗放在仓库里太乱,想按狗的年纪进情景:如果觉得狗放在仓库里太乱,行排序?行排序?如果希望按狗的性别进行排序怎么办?如果希望按狗的性别进行排序怎么办?
使用自制的Comparator
publicstaticvoidsort(Listlist)publicstaticvoidsort(Listlist,Comparatorc)调用第一个方法代表由list元素上的元素上的compareTo()调用第一个方法代表由元素上的方法来决定顺序,因此元素必须要实现因此元素必须要实现Comparable方法来决定顺序因此元素必须要实现这个接口。这个接口。调用第二个方法代表会使用Comparator的调用第二个方法代表会使用的compare()方法。这意味着方法。方法这意味着list元素不需要实现元素不需要实现Comparable。。
LinkedList&;ArrayList
ArrayList在尾部插入数据的效率比在尾部插入数据的效率比LinkedList高,LinkedList更适用于随机高更适用于随机地在任意位置添加和删除数据。地在任意位置添加和删除数据。LinkedList提供了对尾部和头部的添加和删提供了对尾部和头部的添加和删除操作方法。除操作方法。
不允许重复的仓库Set
HashSet类类不允许放入重复元素:注重独一无二独一无二的性质不允许放入重复元素:注重独一无二的性质
何为重复?何为重复?引用相等性对象相等性hashCode()equals()
不能借助Collections类进行排序类进行排序不能借助
2010-10-28
2010-10-28
不允许重复的仓库Set
TreeSet类类辅助HashSet类实现排序辅助类实现排序TreeSettree=newTreeSet(dogHouse);
易于检索的仓库HashMap
HashMap的定义的定义键值对的形式存放数据以键值对的形式存放数据key是不重复的是不重复的不能进行排序
HashMap的优点的优点
提供了快速的检索
方案 HashMap的数据存取的数据存取
情景:情景:按名取狗put(key,value)get(key)
HashMap的迭代的迭代
借助Set借助调用values方法得到存放了所有值的方法得到存放了所有值的Collection调用方法得到存放了所有值的
让仓库更安全——泛型
泛型意味着更好的类型安全性情景:希望所有的仓库像数组一样,情景:希望所有的仓库像数组一样,只存放某种类型的物品。放某种类型的物品。每次拿东西时都知道究竟取出来的是什么。究竟取出来的是什么。在声明时,在类型后多了<类型类型>在声明时,在类型后多了类型在取出时,在取出时,省去了令人头疼的转型