通过java源代码,我在类AbstractList的hashCode()方法中遇到了难以理解的构造。这是ArrayList的hashCode方法的实现。我不明白它是如何与for-each迭代的。
public int hashCode() {
int hashCode = 1;
for (E e : this) //<--???
hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
return hashCode;
}
E 是元素的类型。但是哪个类(类型)指针这个属于哪个?
答案 0 :(得分:1)
var r = /^[0-9]{4}(?:[0-9]{2})?$/
引用pidin -p<process> mapinfo
中的泛型类型(请参阅E e
?)
将其视为
ArrayList<E>
仅因为您在列表中 ,E
成为ArrayList<String> list
for(String e : list) {
答案 1 :(得分:1)
list
this
- 它会引用List<Person> personList = new ArrayList<Person>();
this
- 它将引用personList
类
答案 2 :(得分:1)
但是它属于哪个类(类型)指针?
this
是调用hashCode
的列表。所以编译时类型是AbstractList<E>
。
它说“对于此列表中的每个元素,在结果中包含该元素的哈希码”。