java基础不好。。问一个问题。。
来源:1-7 哈希表更复杂的动态空间处理方法
慕前端9409642
2021-05-28 08:22:56
private void resize(int newM){
TreeMap<K, V>[] newHashTable = new TreeMap[newM];
for(int i = 0; i< newM; i++)
newHashTable[i] = new TreeMap<>();
int oldM = M;
this.M = newM;
for(int i = 0; i < oldM; i++){
TreeMap<K, V> map = hashtable[i];
for(K key: map.keySet()){
newHashTable[hash(key)].put(key, map.get(key));
}
}
this.hashtable = newHashTable;
}
这段代码中的M 和 hashtable为什么要用 this. 呢。。?
可以理解当内部函数有重名的时候 this可以指代类中定义的函数
但这里的newM和newHashTable并没有重名
如果直接使用
M = newM;
hashtable = newHashTable;
会出错吗?1回答
liuyubobobo
2021-05-28
没有重名的话不会出错,写 this 只是强调一下这个变量是类的成员变量,这样阅读者会更轻松一点,马上就明白这个变量是类的成员变量,而不是在这个函数内部的其他什么地方定义的。
继续加油!:)