我写了一个函数:
public void updateDistMatrix(HashMap<Integer ,LinkedList<Node> > dist_matrix,ArrayList<Integer> nearestNodePair,HashMap<Integer,ArrayList<Integer>> clusterSet)
{
doSomething(dist_matrix);
doSomething(clusterSet);
}
函数是要对传进去的两个参数dist_matrix和clusterSet进行更新,外层是一个循环,不断的调用updateDistMatrix()这个函数,以达到不断更新dist_matrix,clusterSet这两个变量的目的。
但是,我发现,函数里对这两个变量的修改并不能保留到下次迭代,也就是说,下次迭代时,这两个变量的值依然是它们的初始值,我想问下大家,如果我想实现类似于c++的传址(参数)的效果,应该怎么做呢,将dist_matrix,clusterSet在main()前面声明成public static 类型的可以吗?
大神们,教教我。
public void updateDistMatrix(HashMap<Integer ,LinkedList<Node> > dist_matrix,ArrayList<Integer> nearestNodePair,HashMap<Integer,ArrayList<Integer>> clusterSet)
{
doSomething(dist_matrix);
doSomething(clusterSet);
}
函数是要对传进去的两个参数dist_matrix和clusterSet进行更新,外层是一个循环,不断的调用updateDistMatrix()这个函数,以达到不断更新dist_matrix,clusterSet这两个变量的目的。
但是,我发现,函数里对这两个变量的修改并不能保留到下次迭代,也就是说,下次迭代时,这两个变量的值依然是它们的初始值,我想问下大家,如果我想实现类似于c++的传址(参数)的效果,应该怎么做呢,将dist_matrix,clusterSet在main()前面声明成public static 类型的可以吗?
大神们,教教我。