- 浏览: 15472 次
最新评论
-
lazyee:
yfzsj 写道byte bytes[] = new byte ...
存储超过内存大小的数据 -
yfzsj:
byte bytes[] = new byte[(int)Ma ...
存储超过内存大小的数据 -
ifox:
看不懂。。。。我要多来几遍了,唉
哈弗曼树及哈弗曼编码简述
文章列表
问题是这样的:如何存储5亿个正整数,并对这些数据进行排重。
直接用一个长度为5亿的int型数组存起来?这显然是不可能的,让我们来计算一下:
一个int型数据占用4byte,5亿个正整数也就是1.6*10^10bit,约为16G,16G的数据全存在内存里,内存显然不够用。那么,如何才能缩小占用空间呢?
再回到问题上看看,问题要求对数据进行排重,在用int存储的情况下,这5亿个数据的范围也就是0-2^31,排重的结果不过就是0到2^31的每一个数值都最多只有一个数存在。约定用1表示有这个数,0表示没有这个数,如此一来就可以用一个bit来表示一个数了。
解决方法如下:建立一个长度为 ...
哈弗曼树是一种特殊的二叉树。
定义: 构造一棵二叉树,若该二叉树的带权路径长度为最小值,则此二叉树可称为哈弗曼树。
解释: 带权路径长度:树中各叶结点到根结点需要经过的最短层数与该结点上 ...
滑杆JSlider类是让用户能够通过滑块的滑动来改变选择值的组件。
与JLabel、JButton相似,JSlider也可以作为小组件放置在面板上。下面以用滑杆改变颜色使画出的图像动态变化为例,说明滑杆的使用。
在这个程序中,我们需要4个类:一个面板类三个监听器类。
面板类:
面板最好分成左右两块,左边放置需要的小组件(按钮、标签、滑杆),右边作为绘画区域。
动作监听器ActionListener:
用来监听按钮,获得按钮文本,从而判断要进行的操作。在这里由于动作监听器所需要完成的功能很少,也可以将其作为一个内部类放置在面板类中。
鼠标监听器Mo ...
对于分形,我的理解就是:由小元件组成整体,然后再用另一或相同整体替换元件形成的循环迭代图形。 下面以谢尔平斯基三角形为例,介绍下最简单的分形思路。 第一步,先构造一个正三角形,取正三角形三边中点并连线,形成一个内置倒三角形,然后把周围3个三角形又分别作为一个基元重复上述操作,多迭代几次就成了第三个图的样子。 界面初始代码如下:
import java.awt.Graphics;
import javax.swing.JFrame;
//谢尔宾斯基三角形
public class DrawPanel extends JFrame{
/**
* 程序的入口主函 ...
在之前的重绘中,用到了数组来传递数据,但是这个数组只能用于某种特定情形中,如果要存入别的数据,就又要定义新的数组了,这样既麻烦又耗时。为了使用方便,我们可以定义一个通用的存储数据的结构,使用时只需更改传入对象的类型就好。这样一个用来存储数据的通用结构就是队列,队列中一般有几种基本的方法:数据对象的添加、插入、删除、获取、队列长度的获取。
有两种基本的实现队列的方法: 用数组实现的队列和用链表实现的队列。
一、用数组实现的队列
1、如何用数组实现队列
用数组实现的队列实质上就是用队列包装了的数组。在队列中还是用一个数组来存储信息,并定义了几个队数组进行基本操作(添加、获取数组元素、数组 ...
一、事件机制
1、事件参与者
事件机制的参与者有三个:事件源,监听器方法(事件类型),事件的处理者。
事件源:事件源是发起动作的对象,java中所有的图形界面组件都可以成为事件源对象。
监听器方法:监听器方法监听某个对象,一旦它发起监听器可识别的动作,监听器方法产生反馈信息。Java中有4种常用的监听器:ActionListener()、 MouseListener()、MouseMotionListener()、KeyListener()。
事件的处理者:最终执行反馈行为的对象,这个类必须实现事件接口。
2、 事件机制流程
事件源发起动作,监听器监听到动作的发生,捕获动作信息及 ...
在前面简单登录界面实现的基础上更进一步,尝试实现QQ登录界面。
首先打开新版QQ的登陆界面,可以发现它有着典型的边框布局特点。一整块的背景,我们暂时不能实现,可当成是北边的部分;西边是我们的头像显示;中央为 ...
要用java实现一个简单登陆界面,首先应该来了解下java中有关图形界面的工具。
Swing开发:
一、java图形界面的分类
1、awt:在jdk 1.4之前一般使用awt,优点是功能强大,使用方便。缺点是跨平台性不好。一般通过包名(java.awt.*)来调用其中的方法。
2、swing:在jdk 1.4之后出现,有着良好的跨平台性,但是在有些方面的功能不如awt.一般通过包名(java.swing.*)来调用其中的方法。
二、Swing中常用的类
1、容器:有两种常用的容器,,一种是JFrame,JFrame是窗体类,如果要创建一个窗体来显示什么东西的话就一定会用到它;另 ...
1、类与对象:
类是有某些相同性质的事物的集合,如:汽车,书籍。
对象则是指某一个具体的事物,如属于你的电脑就是一个对象。对象是基于类来定义的。
对对象的描述包括对 ...
一、类的继承
1、什么是类的继承?
类的继承就是某一个类可以通过extends关键字继承另一个类中的方法和属性。
2、为什么要进行类的继承?
有时我们要定义一个新的类,可能会发现这个类中的属性和方法有很大一部分就是我 ...