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 只是强调一下这个变量是类的成员变量,这样阅读者会更轻松一点,马上就明白这个变量是类的成员变量,而不是在这个函数内部的其他什么地方定义的。


继续加油!:)

1

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2636 学习 · 1090 问题

查看课程

相似问题

java基础

回答 1

回答 1

阿里面试题

回答 1

java语法

回答 1

回答 1