小编car*_*oud的帖子

在Java中实现的"最快"散列函数,比较文件的一部分

我需要在Java中比较实例"File"的两个不同文件,并希望使用快速哈希函数来执行此操作.

想法: - 散列文件1中的20个第一行 - 散列文件2中的20个第一行 - 比较两个散列并返回true(如果它们相等).

我想使用Java中实现的"最快"哈希函数.你会选哪一个?

java comparison performance hash-function

15
推荐指数
1
解决办法
7587
查看次数

打印行,Java堆空间

我想从一个巨大的文本文件(超过600 000 MB)打印每一行.

但是当我尝试下面的代码时,我会在到达第1 000 000行之前得到"... OutOfMemoryError:Java堆空间".

有没有更好的方法来处理输入而不是FileReader和LineNumberReader?

FileReader fReader = new FileReader(new File("C:/huge_file.txt"));
LineNumberReader lnReader = new LineNumberReader(fReader);
String line = "";
while ((line = lnReader.readLine()) != null) {
    System.out.println(lnReader.getLineNumber() + ": " + line);
}
fReader.close();
lnReader.close();
Run Code Online (Sandbox Code Playgroud)

提前致谢!


谢谢大家的回答!

我终于找到了内存泄漏,一个未使用的java类实例,它为每次迭代重复了一次.换句话说,它与文件加载部分无关.

java exception out-of-memory readline

6
推荐指数
1
解决办法
667
查看次数

仅捕获外部括号作为正则表达式中的组

我想使用正则表达式从java中的字符串中捕获日期和其他一些信息.

我将我的模式分组如下,

"( ( date_variation_1 | date_variation_2) (some_other_info) ) "
Run Code Online (Sandbox Code Playgroud)

现在,我想提取匹配的字符串,如下所示,
group0 - 整个匹配组1
- 日期
组2 - 其他一些信息

我的问题是我需要在date_variation_1,date_variation_2和some_other_info内部使用括号,这些括号也将被视为组分隔符.

有没有任何简单的解决方法,即将一些其他特殊章程定义为外部组分隔符,而不是括号?

date_variation_1:

"(((?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|Tues|Thur|Thurs|Sun|Mon|Tue|Wed|Thu|Fri|Sat))" // Day Of Week 1
                        + "(\\s+)"  // White Space 1
                        + "((?:[0]?[1-9]|[1][012])[-:\\/.](?:(?:[0-2]?\\d{1})|(?:[3][01]{1}))[-:\\/.](?:(?:\\d{1}\\d{1})))(?![\\d])" // MMDDYY 1
                        + "(\\s+)" // White Space 2
                        + "((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\\s?(?:am|AM|pm|PM))?))"; // HourMinuteSec 1
Run Code Online (Sandbox Code Playgroud)

java regex pattern-matching

3
推荐指数
1
解决办法
1033
查看次数