- 浏览: 17465 次
- 性别:
- 来自: 北京
最新评论
-
askyuan:
UML图画的很漂亮呀,呵呵
JDK学习之Queue -
huatu122:
你的uml类图很美啊
JDK学习之Queue -
snowolf:
继续关注,等待算法集锦PDF收藏
数据结构之排序算法-简单排序算法(冒泡,选择,插入) -
snowolf:
引用我们从上边可以看到,顺序查找的最小查找时间为O(1),最大 ...
JDK学习之查找算法 -
masterzs:
jerryfeng 写道看样子,象是在IDEA里面用yfile ...
JDK学习之Queue
文章列表
此次开新博,原因有二,一是为了培养自己的写作能力,我认为写作能力十分重要,是知识传播和记载的重要手段,即便可以在当时用语言清晰的表达出来,但是也会随着时间的流逝,渐渐忘却,这时如果能系统的进行归纳和总结,这样,不仅能巩固已有的知识,也能作为备忘,将来作为参考;二是为了知识分享,都说取之于民,用之于民,现在做开发,离不开网络,每天都要从网上搜取大量的资料,正是因为有人不断的分享自己的劳动成果,才能使我们在解决问题的时候更加迅速和便利,之前我总是一味的从网上索取(典型的看帖不回帖),以后我会逐步改善,书写无凭,留此帖为证,希望自勉,也希望浏览我博客的各位朋友进行监督。
在两个年轻人在斯坦福实验室里创造 Yahoo!的时候,互联网的创业就与传奇和梦想划上了等号,之后的 Google 和 Facebook 一次又一次地让所有人确信这一点。它们都诞生在不起眼的大学宿舍,都在很大程度上改变了世界影响了人 ...
原帖:http://article.yeeyan.org/view/PopinJay/113736?all=1(译言)
原文:
一天,一个富有的顾家男人带着儿子做了一次乡村之旅,他想让儿子了解乡下人是多么的贫穷。
他们在一家非常粗陋的农场的农舍中呆了一天一夜。在旅程结束回家的路上,父亲问儿子:“你觉得这次旅行怎么样?”
儿子回答:“非常之好,爸爸。”
父亲接着问:“你有没有注意到他们是多么贫穷啊?”
儿子答道:“是的,大概吧。”
爸爸又问道:“那你认识到了些什么?”
关于这一问题,儿子想了一 ...
原帖:http://cache.tianya.cn/publicforum/content/itinfo/1/42277.shtml(转自天涯社区)
以下为转载内容 ------------------------------------------------------------------------------ 文章:中国软件行业的恶性循环 作者:张晓利
1、前言 本人从事软件行业八年余,此文仅记载近年本人对软件行业的思考和理解,题目中国软件行业可能有些大,叙述的事情涉及的项目仅在百万级别或十万级别可能非常小,站的角度在100人以内企业规模可 ...
闲聊几句,先说说我为什么要写这些东西,有人说是炒冷饭,呵呵,其实本意是为了锻炼自己的写作能力,希望能把一个知识点深入浅出的表达出来,说着容易,但是对于一个新手,则需要一个很长的过程,之前一直没有意识到这块儿的薄弱性,所以打算通过写技术blog来锻炼自己,二是为了梳理一下自己的知识结构体系,三是为了分享自己的心得。所以刚刚开始时,难免文章有生硬的地方,打个比方,很可能写的东西,网上已经有很多类似的文章,并且总结的很好,图文并茂,看了之后 ,总有拷贝的冲动,但是里边总会有自己的体会,记录一下思想,以后再回顾的时候,一看,哦,当初是这样思考的,这个过程,我认为才是最重要的,所以即便是炒冷饭 ...
昨天太忙了,没时间整理,今天一起发布,我们来看看笔试或者面试中经常涉及的几类排序算法,打冲锋
的是冒泡,选择和排序,我们统称为简单排序算法:
1.定义:
首先我们定义个样例数组:
88,33,44,66,11
冒泡排序:顾名思义,就是整个过程就行气泡一样往上升,具体思想就是从头开始,依次比较相邻的两个数,将小数放在前面,大数放在后边,直至比较最后两个数,重复以上过程直至最终完成排序:
33,44,66,11 [88] 88 浮出
33,44,11 [88 66] 66 浮出
33,11[88 66 44] 40浮出 ...
今天我们学习两种常用的查找算法:顺序查找和折半查找,废话少说,先上代码,稍后分析:
1.下边是两种查找算法,其中第二种取自JDK源码:
顺序查找
public static int sequentialSearch(int[] arrays, int key) {
//声明返回的数组下标
int index = -1;
//声明查找标志位,提高查找速度
boolean found = false;
for (int i = 0; (i < arrays.length) & !found; i++) {
i ...
今天学习Queue,基本数据类型,特点先进先出(FIFO)。
1.JDK中接口的定义: 在jdk里边,LinkedList直接实现的Queue接口,所以我们可以使用LinkedList来模拟Queue,看一下几个
主要方法:
2,主要方法解析:
加入一条记录,offer(E o)
public boolean offer(E o) {
return add(o);
}
可以看到内部默认调用LinkedList的add方法,也就是默认放到队尾,head的previous指向,
取出一条记录, ...
今天我们学习一下JDK中栈的实现,栈也是一种基本的数据结构,遵循后进先出(LIFO),废话少说,先看一下UML继承关系。
1,UML继承关系图:
这里我们看到其主要继承Vector,下边我们看下其主要方法的实现方式。
2,JDK中主要方法的实现方式
增加一条记录,push(E item)
public E push(E item) {
addElement(item);
return item;
}
内部调用addElement(item)方法,这个方法是继承自Vector,我们看下addElement方法的具体实现:
...
1.先看下LinkedList 的继承关系:
2. 我们看到其主要实现了List,Queue接口,通过继承一个模板类AbstractSequentialList来实现链表,首先看下成员变量:
private transient Entry<E> header = new Entry<E>(null, null, null);
private transien ...
1.两者的UML继承关系图:
2.两者的实现方式:
ArrayList :
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable
内部用数组实现数据的存取,实现RandomAccess接口,支持随机存取
LinkedList:
public class LinkedList<E> extends AbstractSequent ...