zoukankan      html  css  js  c++  java
  • hashset 和 treeset

    set是接口

    hashset是实现了set接口的类,集合数据结构是哈希表,使用hashcode方法来确定位置,如果位置相同,通过元素的equals来确定是否相同

    由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。

    从类java.util.Set继承的方法有:equals  hashCode  removeAll

    ==============================================================================================================================

    map是接口

    TreeMap是实现map接口的类

    如果要正确实现 Map 接口,则有序映射所保持的顺序(无论是否明确提供了比较器)都必须与 equals 一致(关于与 equals 一致 的精确定义,请参阅 ComparableComparator

    Comparable接口:compareTo(t o)为其方法

    Comparator接口:compare(t o1,t o2)   equale(object obj)为其方法

     =============================================================================================

    treeset不考虑hashcode 和 equals,但由于treeset实现的是set接口,会给元素排序,且不允许元素重复,故treeset对元素实现排序方式之一:让元素实现compareable接口,覆盖compareTo方法(按照元素的默认方式进行排序)

    如果不需要按照对象中具备的自然顺序进行排序。如果对象中不具备自然顺序(即导入的对象包不是自己定义的)这时可以使用treeset集合的第二种排序方式(让集合自身具备比较功能,在集合对象创建的时候就建立一个比较器):定义一个类实现comparetor接口,覆盖compare方法,将该类对象作为参数传递给treeset集合的构造函数(api文档构造方法摘要)。

    注:元素实现compareable接口和集合比较器同时存在,使用的是集合比较器

  • 相关阅读:
    内存泄漏 Memory Leaks 内存优化 MD
    Handler Thread 内部类引起内存泄露分析
    为什么不取消注册BroadcastReceiver会导致内存泄漏
    WebChromeClient 简介 API 案例
    WebViewClient 简介 API 案例
    java.net.URI 简介 文档 API
    android.net.Uri 简介 API
    RV 多样式 MultiType 聊天界面 消息类型 MD
    JS函数声明与定义,作用域,函数声明与表达式的区别
    CSS中table tr:nth-child(even)改变tr背景颜色: IE7,8无效
  • 原文地址:https://www.cnblogs.com/judylucky/p/3613999.html
Copyright © 2011-2022 走看看