3.2HashSet|——HashSet:底层数据结构是哈希表 , 线程是不同步的 。 无序 , 高效;
HashSet集合保证元素唯一性:通过元素的hashCode方法 , 和equals方法完成的 。
当元素的hashCode值相同时 , 才继续判断元素的equals是否为true 。
如果为true , 那么视为相同元素 , 不存 。 如果为false , 那么存储 。
如果hashCode值不同 , 那么不判断equals , 从而提高对象比较的速度 。
|——LinkedHashSet:有序 , hashset的子类 。|——TreeSet:对Set集合中的元素的进行指定顺序的排序 。 不同步 。 TreeSet底层的数据结构就是二叉树 。
对于ArrayList集合 , 判断元素是否存在 , 或者删元素底层依据都是equals方法 。
对于HashSet集合 , 判断元素是否存在 , 或者删除元素 , 底层依据的是hashCode方法和equals方法 。 3.3TreeSet
- 用于对Set集合进行元素的指定顺序排序 , 排序需要依据元素自身具备的比较性 。
- 如果元素不具备比较性 , 在运行时会发生ClassCastException异常 。
- 所以需要元素实现Comparable接口 , 强制让元素具备比较性 , 复写compareTo方法 。
- 依据compareTo方法的返回值 , 确定元素在TreeSet数据结构中的位置 。
- TreeSet方法保证元素唯一性的方式:就是参考比较方法的结果是否为0 , 如果return 0 , 视为两个对象重复 , 不存 。
- 映射用来存放键/值对 , 如果提供了键 , 就能查找到值 。
- Java类库为映射提供了两个通用的实现:HaspMap和TreeMap 。
- Map集合:
|——HashMap:底层是哈希表数据结构 , 是线程不同步的 。 可以存储null键 , null值 。 替代了Hashtable.
|——TreeMap:底层是二叉树结构 , 可以对map集合中的键进行指定顺序的排序 。
- Map集合存储和Collection有着很大不同:
Collection是单列集合;Map是双列集合 。
Map中的存储的一对元素:一个是键 , 一个是值 , 键与值之间有对应(映射)关系 。
特点:要保证map集合中键的唯一性 。
- 1 , 添加 。
void putAll (Map);
- 2 , 删除 。
value remove (key) :删除指定键 。
- 3 , 判断 。
boolean containsKey (key):是否包含key
boolean containsValue (value) :是否包含value
- 4 , 取出 。
value get (key) :通过指定键获取对应的值 。 如果返回null , 可以判断该键不存在 。 当然有特殊情况 , 就是在hashmap集合中 , 是可以存储null键null值的 。
Collection values (): 获取map集合中的所有的值 。
- 5 , 想要获取map中的所有元素:
- OLED|提高 Java 性能的技巧
- Java|提高 Java 性能的技巧
- Java|Java基础的泛型你了解多少?
- Java|聊聊写简历的那些坑,为什么你投出去的简历总是石沉大海!
- Java|Java开发:哪些技能测试来评估Java开发人员的技能?
- javascript|亚马逊签署大规模协议以发射其互联网卫星,将SpaceX排除在外
- javascript|余承东、任正非、孟晚舟都表态了!美媒:华为的天要亮了!
- Java|老机型放抽屉里吃灰?OPPO推出旧机装裱活动,老用户有福了
- 华为鸿蒙系统|开源鸿蒙OpenHarmony 3.1 Release正式版更新,基础能力增强
- 京东云敏捷数字化底座,让大型企业基础设施天堑变通途