- 浏览: 80955 次
- 性别:
- 来自: 南京
最新评论
-
greatghoul:
经常为了取巧,用异常控制流程,看来以后要改呀。
Effective Java 2 读书笔记 第9章 异常 -
wpsing:
可以这样实现第一个循环
public static void ...
遍历同时删除内容时的哨兵问题 -
xusulong:
rain2005 写道应该使用迭代子,Iteratoranot ...
遍历同时删除内容时的哨兵问题 -
rain2005:
应该使用迭代子,Iterator
遍历同时删除内容时的哨兵问题 -
xusulong:
sdh5724 写道你这个代码还是有问题的,倒过来循环更好。恩 ...
遍历同时删除内容时的哨兵问题
文章列表
晚上18:30开始的宣讲会,我在18:10分的时候才知道,因为看见JLH的同学赶过来,硕士阿里有实习生招聘,于是匆匆赶往实验室,扫了下实习的岗位,更新了简历,迅速准备好,杀到就业指导中心(南园西侧)。
...
前些日子琢磨着想搭建一个搜索引擎,自己写成本有点高,虽然以前写过爬虫,但是索引排序估计要烦得多
nutch
是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。
选定nutch之后,开始着手学习使用nutch,英文水平还不够,只能看看nutch的简单的tutorial,但是真正当教程,我还是选择了中文,可以让第一个搜索跑起来之后再选择学习英文的文档,以便更深的理解。
我选择的教程是 nutch入门学习
准备工作:
我的系统是Ubuntu 9.10,java -versio ...
第57条:只针对异常的情况才使用异常
异常应该只用于异常的情况下,不该用于正常的控制流
// Horrible abuse of exceptions. Don't ever do this!
try {
int i = 0;
while(true)
range[i++].climb();
} catch(ArrayIndexOutOfBoundsException e) {
}
设计良好的API不应该强迫它的客户端为了正常的控制流而使用异常,可以提供状态测试(hashNext())或者可识别的返回值(return nul ...
第45条:将局部变量的作用域最小化
要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明
几乎每个局部变量的声明都应该保护一个初始化表达式
例外,try-catch,因为初始化会被抛异常,那么在try外声明,在内部初始化
使方法小而集中,使得一个操作相关的变量不会被另一个操作的代码操作
第46条:for-each循环优先于传统的for循环
迭代器和索引变量更容易出错
for的for(int i = 0; i < a.lenght; i ++) 每次a.length都执行,性能低,容易忘记
例外
过滤:遍历删除部分元素,用remo ...
第38条:检查参数的有效性
当编写方法或者构造器的时候,应该考虑它的参数有哪些限制。应该把这些限制写到文档中,并且在每个方法的开头处,通过显示的检查来实施这些限制。即应该在发生错误之后尽快检测出错误
,可 ...
第30条:用enum代替int常量
枚举类型对比int枚举,String枚举等
易读(不同枚举可以包含同名等)
更加安全(不同枚举值不可以互操作)
功能更加强大(可以添加任意的方法和域,并实现任意接口,为了将数据与枚举常量关联起来,得声明实例域,并编写一个带有数据并将数据保存在域中的构造器)
可以将数据与枚举常量关联起来,得声明实例域,并编写一个带有数据并将数据保存在域中的构造器
可以将不同行为与每个枚举常量关联起来,特定于常量的类主体
如果多个枚举常量同时共享相同的行为,则考虑策略枚举,而不是switch
枚举中的switch语句适合于给外部的枚举类型增加 ...
该章23-29条主要讲述使用泛型对编程的安全性所带来的好处以及可以使API得到更广泛的应用。
23条:不要在新代码中使用原生态类型
使用原生态类型如list,你不能确定该对象里面的元素到底是什么type,会发生ClassCastException的错 ...
Symmetry—The second requirement says that any two objects must agree on
whether they are equal. Unlike the first requirement, it’s not hard to imagine vio-
lating this one unintentionally. For example, consider the following class, which
implements a case-insensitive string. The case of the ...
这是我在做rdf的sentence时候遇到的问题,本来以为是个很复杂的问题,最后才发现是一个不起眼的地方酿成的大错。
此问题可以简单示例成如下问题:
找到ArrayList a = {"a", "*", "*", "b", "*", "*", "c"}中为"*"的那些元素,并且将这些元素删除
开始的时候不假思索就写下了下面的代码
错误的写法
public static void guardProblem(ArrayList ...
问题描述:
算法导论 习题 5.4-1
一个房间必须有要有多少人,才能让某人和你生日相同的概率至少为1/2?必须要有多少人,才能让至少两个人生日为7月4日的概率大于1/2?
分析和解决:
其实这个问题并不难,然而一开始我大意了,于是就出错了,于是决定仔细分析,写下来。首先假设不考虑闰年。
对于第一个问题:
假如从正面出发,就需要考虑有多少人和你同生日,很复杂,反过来考虑;用p(k)表示有k人与你生日相同,则p(0)表示没有人和你相同,那么问题就是1-p(0) >= 1/2,而p(0) = (364/365)^n ,因为你的生日是确定的
对于第二个问题:
分析类似于第一个,7 ...
http://www.searchtools.com/info/classifiers.html
Taxonomies, Categorization, Classification, Categories, and Directories
for Searching
The terms taxonomy
, ontology
, directory
,
cataloging
, categorization
and classification
are often confused and used interchangeably. Th ...
- 2009-11-10 11:36
- 浏览 1051
- 评论(0)
前一段时间实现了一个系统
http://iws.seu.edu.cn/services/digo/
主要致力于对象搜索,让用户能快速找到他想要的那个对象,而不是同名的另一个对象
搜索的第一个界面,会返回四个聚类,每个类有一些属性,属性值对,用来向用户说明该聚类中描述的一些对象相关的数据,以便用户判断他要找的对象在那个类中。
对聚类可以进一步划分,可以选择一个或多个用户认为可能保护他要找的对象的类,然后点击continue,这个操作的含义是对选择的几个聚类划分成新的4个类,如果选择的是4个类,或者选择的几个类已经不可划分,那么continue将是灰化的,这时候用 ...
由于我做的系统,有一个页面需要从后台返回很多数据,这样处理起来就会很耗时间,最后会导致浏览器死掉,或者跳出脚本忙,停止调试还是继续之类的字样。
后来到网上搜了下,解决办法大抵就是让自己的代码一次执行的时候执行一小块,不要执行的太多或者循环嵌套比较深,同时还可以借助于setTimeout来让代码间隔执行。
针对我的代码,开始在each里面,我设置了个setTimeout的函数,结果发现根本不起作用阿,各个each中的元素还是几乎同步进行。后来有个哥们提示我each是并行的
,异步的,需要改成for,这种同步的才能真正实现效果,于是我用类似于以下的代码来实现了js分块 ...
- 2009-11-07 19:46
- 浏览 3764
- 评论(0)
在做字符转义的时候遇到的问题,本来我是这样的代码
for(var i = 0; i < input.lenght; i ++)
{
var c = input[i];
var output = ""
switch(c)
......
return output;
}
在ff下面运行良好,没有任何问题,可是到了ie下面就是出错,后来搜了半天,一开始还以为是其他部分代码的问题,后来调试的时候,直接return input,就没有问题,于是知道了是这段代码的问题,然后又搜了下,定位到了input[i]这里 ...