集合框架总结

LsdCong 贡献于2017-03-19

作者 Shinelon  创建于2014-10-29 12:08:00   修改者Shinelon  修改于2017-01-28 17:37:33字数740

文档摘要:
关键词:

Collection(单列集合) List(存取有序,有索引,可以重复) ArrayList 底层是数组实现的,线程不安全,查找和修改快,增和删比较慢 LinkedList 底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢 Vector 底层是数组实现的,线程安全的,无论增删改查都慢 如果查找和修改多,用ArrayList 如果增和删多,用LinkedList 如果都多,用ArrayList Set(存取无序,无索引,不可以重复) HashSet 底层是哈希算法实现 LinkedHashSet 底层是链表实现,但是也是可以保证元素唯一,和HashSet原理一样 TreeSet 底层是二叉树算法实现 一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多用 HashSet,HashSet的效率比较高 TreeSet在面试的时候比较多,问你有几种排序方式,和几种排序方式的区别 Map(双列集合) HashMap 注意: 底层是哈希算法,针对键 集合中的contains(); 和 remove(); 方法 LinkedHashMap 都是依赖于底层的equals(); 方法 底层是链表,针对键 TreeMap 如果在排序时算出的哈希码一致,jvm会调用 底层是二叉树算法,针对键 equals(); 方法进行比较,所以重写了 开发中用HashMap比较多 HashCode(); 方法之后最好也重写 equals();方法 集合框架在现实开发中的用途 为什么要重写equals(); 方法? Collection(单列集合) 因为 equals(); 方法默认比较的是--> 内存地址 单列集合如果储存的是重复元素优先考虑ArrayList,反之优先考虑HashSet Map(双列集合) 双列集合直接考虑HashMap,除非需要排序时才考虑TreeMap

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档