https://cdn.nlark.com/yuque/0/2020/png/576791/1601310413172-1ac189b2-d87c-48ec-a6c0-fe8c48b21460.png

主要根据集合的特点来选⽤,⽐如我们需要根据键值获取到元素值时就选⽤Map接⼝下的集合,需要排序时选择TreeMap,不需要排序时就选择 HashMap ,需要保证线程安全就选⽤ ConcurrentHashMap.当我们只需要存放元素值时,就选择实现Collection接⼝的集合,需要保证元素唯⼀时选择实现Set接⼝的集合 ⽐如TreeSet或HashSet,不需要就选择实现List接⼝的⽐如ArrayList或LinkedList,然后再根据实现这些接⼝的集合的特点来选⽤。