从本质上说,集合类中存取的元素都有顺序——你调用迭代器方法时任何一个集合类对象中的元素都是按一定的顺序取出的。
List类集合(ArrayList或LinkedList)存取元素的顺序按的是元素被添加的顺序。
Set类集合(HashSet或TreeSet)存取元素的顺序和元素被添加的顺序无关,HashSet是按照每个元素的hashCode值排序,TreeSet是按照特定方法(Comparable接口的方法或Comparator接口的方法)对元素比较大小排序的。
HashSet中元素的顺序并不能反映元素值的大小排序,存入Hash表就是查取迅速;而TreeSet的排序规则能明确反映出元素值的大小排序,可能TreeSet的查找速度没有Hash表快,但其排序规则明确。 |