可能重复:
hashCode()是如何用Java计算的
我发现Java中hashCode(?
的根类方法没有实现Object
:
public native int hashCode();
Run Code Online (Sandbox Code Playgroud)
如果我有一个Object a
和一个Object b
,我如何知道a.hashCode()
和b.hashCode()
价值而不使用System.out.println()
?只是通过hashCode
实施.
我尝试了new
两个ArrayList
对象,令我惊讶的是,hashCode()
值是相同的:它们都是1.
众所周知,Object
是Java中的根类.我找到了一个Objects
看起来非常相似的类Object
.
Theis Objects
课让我困惑了一段时间.任何人都可以告诉我何时何地应该使用该Objects
课程?
我想知道静态界面和普通界面之间没有这样的关键字在java中的区别是什么?
我们应该在接口之前何时何地使用static关键字.为什么我们应该使用它?你可以把这个界面作为一个例子非常感谢你!
public static interface Map.Entry<K,V>
有两种等于方法?
public boolean equals(Bigram b) {
return b.first == first && b.second == second;
}
@Override public boolean equals(Object o) {
if (!(o instanceof Bigram))
return false;
Bigram b = (Bigram) o;
return b.first == first && b.second == second;
}
Run Code Online (Sandbox Code Playgroud)
与2种方法相比,当我们想要覆盖等于方法时,为什么我们需要定义一个参数类型为Object的equals方法!
当我读取jdk源代码时,我找到了注释,但我不确定为什么在这里使用它?
在java中使用"@SuppressWarnings("unchecked")"可以从中受益吗?
我们什么时候应该使用它,为什么?
来自jdk源代码的示例代码
private class Itr implements Iterator<E> {
int cursor; // index of next element to return
int lastRet = -1; // index of last element returned; -1 if no such
int expectedModCount = modCount;
public boolean hasNext() {
return cursor != size;
}
@SuppressWarnings("unchecked")
public E next() {
checkForComodification();
int i = cursor;
if (i >= size)
throw new NoSuchElementException();
Object[] elementData = ArrayList.this.elementData;
if (i >= elementData.length)
throw new ConcurrentModificationException();
cursor = i + 1;
return …
Run Code Online (Sandbox Code Playgroud) 当我用jsoup 解析 html文件(存储在本机中)时.我修改了html文件中的一些元素,所以我想保存修改后的html,并替换旧的?是否有人知道jsoup中的哪种方法可以完成这项工作?
非常感谢!!!
我查看源代码Arrays.hashCode(char[] c)
我不是很确认它适用的算法在所有情况下都能很好地工作.
public static int hashCode(int a[]) {
if (a == null)
return 0;
int result = 1;
for (int element : a)
result = 31 * result + element;
return result;
}
Run Code Online (Sandbox Code Playgroud)
这里实现的散列函数是否真正均匀地分配了所有输入数组.为什么我们在这里使用prime 31.