网站手机客户端开发教程,自助建站网站模板,怎样把已经有的网站做推广,大连seo推广外包目录 Set的说明
常见方法说明
注意事项
TreeSet使用案例 Set的说明
Set与Map主要的不同有两点: Set是继承自Collection的接口类,Set中只存储了Key.
常见方法说明
方法解释boolean add(E e)添加元素,但重复元素不会被添加成功void clear()清空集合boolean contains(Object…目录 Set的说明
常见方法说明
注意事项
TreeSet使用案例 Set的说明
Set与Map主要的不同有两点: Set是继承自Collection的接口类,Set中只存储了Key.
常见方法说明
方法解释boolean add(E e)添加元素,但重复元素不会被添加成功void clear()清空集合boolean contains(Object o)判断o是否在集合中IteratorE iterator()返回迭代器boolean remove(Object o)删除集合中的oint size()返回集合中元素的个数boolean isEmpty()检测set是否为空,空返回true,否则返回falseObject[] toArray()将set中的元素转换为数组返回boolean containsAll(Collection? c集合c中的元素是否在set中全部存在,是返回true,否则返回falseboolean addAll(Collection? extends E c)将集合c中的元素添加到set中,可以达到去重的效果
注意事项
Set是继承自Collection的一个类接口Set中只存储了Key,并且要求key一定要唯一(key不可以重复)TreeSet的底层是使用Map来实现的, 其使用key与Object的一个默认对象作为键值对插入到Map中的Set最大的功能就是对集合中的元素进行去重实现Set接口的常用类有TreeSet和HashSet, 还有一个LinkedHashSet, LinkedHashSet是在HashSet的基础上维护了一个双向链表来记录元素的插入次序.Set中的key不能修改,如果要修改,先将原来的删除掉, 然后再重新加入TreeSet中不能插入null的key,HashSet可以.
Set底层结构TreeSetHashSet底层结构红黑树哈希桶插入/删除/查找时间复杂度O(1)是否有序关于key有序不一定有序线程安全不安全不安全插入/删除/查找区别按照红黑树的特性来进行插入和删除1.先计算key哈希地址 2.然后进行插入和删除比较与覆写key必须能够比较,否则会抛出ClassCastExcetion异常自定义类型需要覆写equals和hashCode方法应用场景 需要key有序场景下key是否有序不关心,需要更高的时间性能
TreeSet使用案例
public static void TestSet() {SetString s new TreeSet();// add(key) : 如果key不存在,则插入,返回true;// 如果key存在,返回falseboolean isIn s.add(1);System.out.println(isIn);s.add(2);s.add(3);s.add(4);s.add(5);isIn s.add(1);System.out.println(isIn);System.out.println(s.size());System.out.println(s);// add(key): key如果是空,抛出空指针异常// s.add(null);//contains(key): 如果key存在,返回true,否则返回falseSystem.out.println(s.contains(1));System.out.println(s.contains(10));// remove(key): key存在,删除成功返回true// key不存在,删除失败,返回false// key为空,抛出空指针异常s.remove(1);System.out.println(s);s.remove(10);System.out.println(s);IteratorString it s.iterator();while(it.hasNext()) {System.out.println(it.next() );}System.out.println();}