西维蜀黍

【Java】集合类 - Map - HashMap的并发问题

背景

由于HashMap不是线程安全的,因此在并发环境下可能会发生死锁问题,且导致CPU占用率接近100%。

  ...


【Java】集合类 - Map - HashMap

HashMap 类

HashMap类实现了 Map<K,V>接口,同时继承了抽象类 AbstractMap<E>。

HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。

  ...


【Java】集合类 - Collection接口的三种遍历方法

第一种 - Iterator(迭代器)

  ...


【Java】集合类 - HashSet、HashMap 和 HashTable

集合框架

集合框架有自己的接口和实现,主要分为Set接口,List接口,Map接口和Queue接口。

它们有各自的特点:

  • Set接口里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。
  • List接口是一个有序的集合,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。
  • Map接口中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。
  • Queue接口的工作原理是 FCFS 算法(First Come, First Serve)
有序否TreeMap 允许元素重复否
Collection
List
Set AbstractSet
Set HashSet
Set TreeSet 是(用二叉树排序)
Map AbstractMap 使用key-value来映射和存储数据,Key必须惟一,value可以重复
Map HashMap 使用key-value来映射和存储数据,Key必须惟一,value可以重复
Map TreeMap 是(用二叉树排序) 使用key-value来映射和存储数据,Key必须惟一,value可以重复
  ...


【Java】==与equals()

背景

Java 中的数据类型,可分为两类:

  1. 基本数据类型,也称原始数据类型,比如 byte,short,char,int,long,float,double,boolean 。

  2. 复合数据类型(类)。

  ...