然后我们这里主要讲的是三个类,hashmap,treemap,hashtable,至于linkedhashmap也和linkedhashset一样的,其实hashset就是基于hashmap,treeset就是基于treemap。所以他们的内部数据结构你们都知道了。然后我们先讲一下这个map是如何取出所有的元素的,它不是collection,所以不能用迭代器取出所有元素,但我们可以利用它里面的...
LinkedHashSet介于HashSet与TreeSet之间。它由一个执行hash表的链表实现,因此,它提供顺序插入。基本方法的时间复杂度为O(1)。 3.TreeSet 例子 [java] view plain copy TreeSet<Integer> tree = new TreeSet<Integer>(); tree.add(12); tree.add(63); tree.add(34); tree.add(45); Iterator<...
public class Q17 { public static void main(String[] args) { TreeSet<Dog> dset = new TreeSet<Dog>(); dset.add(new Dog(2)); dset.add(new Dog(1)); dset.add(new Dog(3)); Iterator<Dog> iterator = dset.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next()...
理解:HashSet内部使用HashMap,LinkedHashSet内部使用LinkedHashMap,TreeSet内部使用TreeMap.由于HashMap和LinkedHashMap允许null元素,所以相应的HashSet和LinkedHashSet也允许null元素.TreeMap不允许有null键值,所以TreeSet不允许有null键值,否则会抛出NullPointerException异常.主要原因是compareTo和compare方法的参数为null时会...
Set集合——HashSet、TreeSet、LinkedHashSet(2015年07月06日) 一.Set集合不同于List的是: Set不允许重复 Set是无序集合 Set没有下标索引,所以对Set的遍历要通过迭代器Iterator 二.HashSet 1.HashSet由一个哈希表支持,内部实际上是一个HashMap,HashMap的键即为HashSet的值,HashMap的值是一个固定常量,这也就...
while (iterator.hasNext()) { System.out.print(iterator.next() + " "); } } } 编译正常,但是运行时出错: Exception in thread "main" java.lang.ClassCastException: collection.Dog cannot be cast to java.lang.Comparable at java.util.TreeMap.put(Unknown Source) ...
LinkedHashSet是介于HashSet 和 TreeSet之间,内部是一个双向链表结构,所以它的插入是有序的,时间复杂度是O(1)。 3. TreeSet 示例 TreeSet<Integer>tree=newTreeSet<Integer>();tree.add(12);tree.add(63);tree.add(34);tree.add(45);Iterator<Integer>iterator=tree.iterator();System.out.print("Tree ...