随笔分类 -  博客 Java源码分析

摘要:Java对Primitive(int,float等原型数据)数组采用快速排序,对Object对象数组采用归并排序。 因为优化的归并排序既快速(nlog(n))又稳定。 对于对象的排序,稳定性很重要。比如成绩单,一开始可能是按人员的学号顺序排好了的,现在让我们用成绩排,那么你应该保证,本来张三在李四前面,即使他们成绩相同,张三不能跑到李四的后面去。 而... 阅读全文
posted @ 2015-04-09 15:44 keedor 阅读(273) 评论(0) 推荐(0)
摘要:LinkedList也和ArrayList一样实现了List接口,但是它执行插入和删除操作时比ArrayList更加高效,因为它是基于链表的。基于链表也决定了它在随机访问方面要比ArrayList逊色一点。 除此之外,LinkedList还提供了一些可以使其作为栈、队列、双端队列的方法。这些方法中有些彼此之间只是名称的区别,以使得这些名字在特定的上下文中显得更加的合适。... 阅读全文
posted @ 2015-04-09 14:56 keedor 阅读(161) 评论(0) 推荐(0)
摘要:对于ArrayList而言,它实现List接口、底层使用数组保存所有元素。其操作基本上是对数组的操作。下面我们来分析ArrayList的源代码:1) 底层使用数组实现:2) 构造方法: ArrayList提供了三种方式的构造器,可以构造一个默认初始容量为10的空列表、构造一个指定初始容量的空列表以及... 阅读全文
posted @ 2015-04-05 19:51 keedor 阅读(159) 评论(0) 推荐(0)
摘要:HashSet实现Set接口,其中的很多方法都是用一个HashMap实现的 HashSet中的元素都存放在HashMap的key上面,相对于HashMap用了一个entry存放key和value,HashSet只存放了key值,也就只用到了HashMap中的key值 而value中的值都是统一的一个private static final Object P... 阅读全文
posted @ 2015-04-03 15:47 keedor 阅读(149) 评论(0) 推荐(0)
摘要:注明:该文转载自网络博客,但由于是从Onenote笔记中直接发布,之前记笔记的时候未注明原作,望见谅HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 在java编程语言中,最基本的... 阅读全文
posted @ 2015-04-01 22:20 keedor 阅读(235) 评论(0) 推荐(0)