- 浏览: 167164 次
- 性别:
- 来自: 长沙
-
最新评论
-
ae6623:
敢问兄台,size()是咩。<code> if(i ...
单向链表的方法优化 -
good_ovo:
加油!你比我好多了,我每天都在敲着不想敲的代码
实习,走在重新开始的路上 -
jingjing0907:
加油!其实北京没那么难,习惯了就好,
实习,走在重新开始的路上 -
superhj1987:
看着好沉重的感觉 其实没啥的 等你有一天进入所谓你的梦想公司了 ...
实习,走在重新开始的路上 -
mfkvfn:
just do IT。当年就是听到这句话才干上IT的。
实习,走在重新开始的路上
文章列表
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你用System.out.println(5/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。 有些异常需要做处理,有些则不需要捕获处理,在下面会详细讲到。
天有不测之风云,人有旦夕祸福,Java的程序代码也如此。在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免、不可预测的情况则应考虑异常发生时如何处理。
而在Java中的异常用对象来表示,Java对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个 ...
输入输出流想必大家已经用的非常熟练了,但是,我们往往忽略了身边最熟悉的一些东西,又或者我们只知道要这样做,却不知道为什么这么做,所以在这里跟大家分享一下在网络编程当中看到的一些关于I/O流的细节,闲话不多说,下面开始:
OutputStream,顾名思义:输出流,它的子类使用所提供的方法向某种媒体写入数据,例如,FileOutputStream将数据写入文件,TelnetOutputStream将数据写入网络连接,不过听到这大家会问了,API中不存在TelnetOutputStream这个类呀,不过想必大家都记得,Sokcet类中有一个getOutputStream的方法,这个 ...
我相信很多人跟我一样还未学习过范型的概念就开始使用范型的实例,最典型的就是集合框架。为了进一步深入了解范型,这一次通过几个简单的例子来说明范型的注意事项。
一.没有范型的世界
所有的java类都派生自java.lang ...
上一篇博客当中提到了哈弗曼树的构建与编码,详情请参见:http://cq520.iteye.com/blog/1870454
这一次主要是跟大家探讨一下哈弗曼压缩的原理及实现,由于过程化的实现更加容易理解也更加直观,所以这里首先会分步骤跟 ...
哈弗曼,一个在几乎所有讲数据结构的书中都有出现过的人物,他的鼎鼎大名想必就不用我多说了。这一次来给大家讲解一下哈弗曼树的构建与哈弗曼编码的基本原理,有什么用呢?别急,还是先学会创建一棵哈弗曼树吧。
哈弗曼树又称最优二叉树,最优二叉树就是带权路径长度WPL最小的二叉树,那么我们就得搞清几个概念:
1. 路径长度:从树中的一个结点到另一个结点之间的分支构成这两个结点的路径,路径上的分支数目称为路径长度。
2. 树的路径长度:从树根到每一个结点的路径长度之和,我们所说的完全二叉树就是这种路径长度最短的二叉树。
3. ...
起初看到这个,你的想法是什么,这小子想干嘛呢???
这个方法是在一个多月前做多线程游戏的时候想到的,最初是中南的一位朋友提出来的。最近的博客老是在“炒剩饭”,一些新学的东西也总是来不及作总结,不过觉得这个想法确实不错,所以也才拿出来再与大家探讨一下,说不定还有更好的方法。
我们所玩的一些场景不动2D的游戏,往往需要构建一些地图,如泡泡堂,坦克大战等等。
而在地图构建的时候,我们往往采用的是用一个数组将所需的地图保存起来,但是做到后来,需要的地图多了,保存的效率往往也就偏低了,而且还会耗费大多的代码去填数组。
技术点不多,主要涉及一些IO类的使用与GUI的用法,为大家提供一个简单的模板,更多的功能当然是留给大家自己来思考,代码可以自己拷过去运行一下,打开文件与另存为方法请填入绝对路径下的文件名,点击保存会直接保存到D盘,还可以设置字体,代码如下:
面板类:
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.Fi ...
单向链表翻转,之前把这个问题想的太简单了,以为只要把数据域翻转过来就可以了,结果是筐了大瓢,下面举一个简单的例子说明:
假设有n个人站成一排,现在要把这n个人的站的顺序颠倒过来,那么就 ...
前几天写了一篇关于单向链表的实现方法,单向链表的具体实现在里面都有说明,见博客:http://cq520.iteye.com/blog/1853186
不过细心的朋友也许发现了,上次写的几个方法其实是存在漏洞的,插入方法与删除方法都不能操作第一个元素,而实际上操作第一个元素的方法与操作其他元素的方法是一样的,只是代码描叙上有些差异,原因在于:首结点不存在前结点对它的引用
优化之后的代码如下:
/**
* 向链表中插入新元素的方法
* @param index 插入的位置
* @param obj
*/
public void i ...
使用数组来实现自定义ArrayList,除了基本的增删查改等方法之外,还添加了API中所使用到的一些方法,方便大家更好的理解ArrayList的实现,具体实现都有解释,主函数中给出了测试方法,代码如下:
/**
* 自定义泛型列表
* @author 陈强
* @param <E>
*/
public class MyArrayList<E> {
Object[] data=new Object[0];//初始数组,定义一个对象类型的数组保存数据
public static void main(String args[]){
//创建I ...
学会了单链表的基本操作之后,我们就可以自定义一些非常有意思的功能了,例如对单链表中的元素进行排序,(排序规则可以由自己定),将链表翻转等等,这里主要是讲老师布置的几个问题,我觉得也非常有趣,大家也可以思考一下,由于这些方法几天前就写完了,五一假在家中也没有对之前的链表进行更多的修改了,所以还是用之前所写过的单链表结构继续添加功能吧。
在实现所有功能之前先来个前言,接下来的这两个方法对后面的每一步都是至关重要的,第一个是获取链表长度的方法:
获取链表长度的方法其实可以是打印链表方法的翻版,我最开始的时候也是这样做的,不过后来发现了一个更好的更不容易出错的方法,在 ...
前两天发了一篇关于递归的博客,感谢一位博主提出了尾递归的概念,之前还没了解过尾递归,这两天稍微弄了一下尾递归,发现了尾递归的确实相对于传统的树形递归有着效率上的优势,不过通过比对之后我还是发现了一个问题,不知道哪位博主能帮帮忙?
在上一篇博客中就已经说到递归调用时,系统会记录递归链,使用树形递归计算连整数的和时,数字过大就会溢出栈空间。所以通过前两天一位博主提出的尾递归的概念,我也进行了一些资料的搜索,百度百科上面关于尾递归有这样一个例子:
线性递归:
long Rescuvie(long n) {
return(n == 1) ? 1 : n * Resc ...
递归算法想必大家都已经非常熟悉了,这一次主要也不是教大家怎么使用递归的,在这点上想必有更多的大师在那,小生就不在这献丑了^-^。这次主要是给大家讲解一些我们在使用递归算法时可能没有考虑到的一些问题,在此之前,先看看下面的一个算法:
public long sum(int n){
if(n==1){
return 1;
写一个大家都比较熟悉的数据结构:单向链表。
不过先告诉大家一个小秘密,java的API里面已经提供了单向链表的类,大家可以直接拿来用,不过学习数据结构课程的时候想必大家也已经知道,虽然系统会给我们提供一些常用的数据结构,但是自定义的总是能够带来不同的喜感的,而且通过自己的编写也更能够让我们了解其中实现的过程,而且我们还可以写一些比较个性化的方法作为属于自己的数据结构。这里主要是介绍一些常用结构里面都会用到的方法,以及链表具体是如何操作的。
首先,单链表相对于队列的优势在于存储地址不是连续的,这样的意义在于,操作其中的某一个位置的元素时不需要对 ...
学会了使用按钮监听以及鼠标监听器之后,我们就可以制作一个属于自己的画图板了,以下是我之前制作的一个简易的画图板,功能方面尚还不足,不过已经可以完成铅笔,橡皮,画直线,圆等基本工作了,还可以完成颜色的 ...