Java集合类
Java集合类

1. Java的集合类
-
Java的集合主要是由
Map和Collection这两个接口派生出来的。Collection接口又派生出三个重要的接口Set,List,Queue。 -
Java所有的集合类,都是
Set,List,Map,Queue这几个接口的实现类。- Set接口: Set接口的主要实现类有:
HashSet,TreeSet,LinkedHashSet。Set集合最大的特征就是不允许存储重复的元素。 - List接口: List接口的主要实现类有:
ArrayList,LinkedList。List接口里面存储的元素是有序的,并且允许存放重复的元素。 - Map接口: Map接口的主要实现类有:
HashMap,TreeMap,LinkedHashMap。Map接口存放的就是键值对。 - Queue接口: Queue接口的主要实现类有:
ArrayDeque,PriorityQueue。Queue接口主要是用来实现队列的。
- Set接口: Set接口的主要实现类有:
2. 线程安全集合类
- Vector: 这个和ArrayList类比较像,只不过Vector中的每个方法都被
synchronized关键字修饰,所以Vector集合是线程安全的。 - HashTable: 这个和HashMap类比较像,同样的HashTable中的每个方法都被
synchronized关键字修饰。 - java.util.concurrent包提供的都是线程安全的集合:
ConcurrentHashMap通过锁分离技术实现了线程安全。
3. 线程不安全集合类
ArrayList,LinkedList,HashSet,HashMap,TreeSet,TreeMap这些类都是线程不安全的集合类,只能在单线程环境下使用,在多线程环境下,如果没有合适的同步措施,就会造成数据不一致等并发问题。
