Java相关文章索引(12)

时间:2021-11-24 20:24:29

环境部署

Eclipse在增强自动补全后有一个相当不友好的地方就是变量名的自动补全,我们习惯性地会按空格跳过,而用自己定义的变量名,但在增强自动补全后,按空格的功能不是跳过而是选中,那怎么办呢?
搜索了下大致是通过修改Eclipse源码实现的:
<转>Eclipse增强自动补全,取消“=”等号和空格自动输入
关联Eclipse源码,安装Eclipse SDK插件

基本常识

1.java中jar命令打包一个文件夹下的所有文件

示例1:将两个class文件存档到一个名为 classes.jar 的存档文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 ‘mymanifest’ 将 foo/ 目录下的所有
文件存档到一个名为 ‘classes.jar’ 的存档文件中:
jar cvfm classes.jar mymanifest -C foo/ .

2.eclipse怎样快速的给代码段添加try catch

选中要添加try..catch的代码段,然后点击鼠标右键,选择Sourround With选项(取代右击的快捷键:Alt+Shift+z),如果需要添加finally,则可以光标放在try那一行,然后通过Ctrl+1来添加。

3.java字符串按长度大小排序

    public static void sortStringArray(String[] arrStr) {
String temp;
for (int i = 0; i < arrStr.length; i++) {
for (int j = arrStr.length - 1; j > i; j--) {
if (arrStr[i].length() > arrStr[j].length()) {
temp = arrStr[i];
arrStr[i] = arrStr[j];
arrStr[j] = temp;
}
}
}
}

4.java对List去重并且保持集合中的原有顺序

1.去重
可以利用Java中的Set集合
2.保持顺序
Set中的LinkedHashSet就是有序的

5.为什么Java方法里面不能再嵌套方法?

6.Java示例 - 判断两个数组相等

Arrays.equals(array1,array2)

7.JAVA中 如何产生一个特定范围的随机数

nextInt中的数值n,生成[0,n)

生成0-2之间的随机数,包括2

Random rand = new Random();
int randNum = rand.nextInt(3);

生成5-26之间的随机数,包括26

int randNum = rand.nextInt(22)+5;

IO

  1. commons-io之LineIterator
  2. Java如何正确的使用try catch finally关闭文件流的总结
  3. 使用FileUtils简化你的文件操作
  4. [测试]java IO写入文件效率——几种方法比较

Debug

  1. Doubled的无穷小与负无穷
    这里可能会有一个定势思维的误区在里面,就是有时候我们初始化一个值,拿java来说,整型想初始化为最小整型,那么Integer.MIN_VALUE,那如果想初始化一个最小的Double型呢?Double.MIN_VALUE?有,确实有,然而并不能如您所愿,Java中Double的MIN_VALUE是一个大于0的存在,此时需要用到的是Double.NEGATIVE_INFINITY,而非 Double.MIN_VALUE

  2. 正则表达式$出错,出现Invalid escape sequence (valid ones are \b \t \n \f \r \” \’ \ )

    在JAVA中反斜杠本身具有转义的作用,要表示一个正则表达式中的\,必须用\\转 义

  3. 浅谈HTTP中Get与Post的区别

实战演练

倒排索引的java实现

自己在实现的时候,做了一些小的修改,主要是统计词频所用的HashMap——nums的处理逻辑上:
nums.put(string, nums.getOrDefault(string, 0) + 1);

附Python3版的实现代码

import collections
map,nums= {},collections.defaultdict(int)

def createIndex(filePath):
with open(filePath) as reader:
for line in reader:
sarray=line.strip('\n').split(' ')
for s in sarray:
list = []
if s not in map:
list.append(filePath)
map[s]=list
else:
list = map[s]
if filePath not in map[s]:
list.append(filePath)
nums[s]+=1

filePath={各文档路径}
for i in range(1,4):
createIndex(filePath+str(i)+".txt")

for i in map:
print("{key}:{value}".format(key=i,value=map[i]))
for j in nums:
print("{key}:{value}".format(key=j,value=nums[j]))