
转载于:冰湖一角 https://www.cnblogs.com/bingyimeiling/p/10255037.html
集合可以看作是一种容器,用来存储对象信息。所有集合类都位于java.util包下,支持多线程的集合类位于java.util.concurrent(JUC)包下。
数组元素既可以是基本类型的值,也可以是对象;集合只能保存对象。
Java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:List、Set、Queue(Java5新增的队列),因此Java集合大致也可分成List、Set、Queue、Map四种接口体系。(Map不是Collection的子接口)
Set执行添加已经存在的元素时,会 *** 作失败,add()方法返回false。 主要实现类:
List集合代表一个有序、可重复集合,集合中每个元素都有其对应的顺序索引。List集合默认按照元素的添加顺序设置元素的索引,可以通过索引(类似数组的下标)来访问指定位置的集合元素。
ArrayList和linkedList的区别:
linkedList的实现机制与ArrayList的实现机制完全不同,ArrayLiat内部以数组的形式保存集合的元素,所以随机访问集合元素有较好的性能;linkedList内部以链表的形式保存集合中的元素,所以随机访问集合中的元素性能较差,但在插入删除元素时有较好的性能。
Map接口采用键值对Map
HashMap与Hashtable是Map接口的两个典型实现,它们之间的关系完全类似于ArrayList与Vertor。HashTable是一个古老的Map实现类,它提供的方法比较繁琐,目前基本不用了
♦ HashMap是线程不安全,HashTable是线程安全的。
♦ HashMap可以使用null值最为key或value;Hashtable不允许使用null值作为key和value,如果把null放进HashTable中,将会发生空指针异常。
各Map性能分析:
♦ HashMap通常比Hashtable(古老的线程安全的集合)要快
♦ TreeMap通常比HashMap、Hashtable要慢,因为TreeMap底层采用红黑树来管理key-value。
♦ linkedHashMap比HashMap慢一点,因为它需要维护链表来爆出key-value的插入顺序。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)