定义了一个类WeightedQuick联合,但是有公共QuickunionFind(int N)它是什么?它是一个方法然后我如何传递它的值N,或者如果它是什么,如何传递N的值传递到它或如何被激活 感谢所有回答的人,我是编码新手,意识到问题很愚蠢。
public class WeightedQuickUnionUF {
private int[] id; // id[i] = parent of i
private int[] sz; // sz[i] = number of objects in subtree rooted at i
private int count; // number of components
/**
* Initializes an empty union-find data structure with N isolated components 0 through N-1.
* @throws java.lang.IllegalArgumentException if N < 0
* @param N the number of objects
*/
public WeightedQuickUnionUF(int N) {
count = N;
id = new int[N];
sz = new int[N];
for (int i = 0; i < N; i++) {
id[i] = i;
sz[i] = 1;
}
}
答案 0 :(得分:1)
您的代码中没有内部类。
由于它是一个没有返回值的方法,您可以告诉它是constructor,用于初始化您的类。在创建WeightedQuickUnionUF
的新实例时传入值,例如:
WeightedQuickUnionUF weightedQuickUnionUF = new WeightedQuickUnionUF(3);
答案 1 :(得分:0)
它是类的构造函数。您可以使用以下内容调用它:
new WeightedQuickUnionUF(1);
答案 2 :(得分:0)
你的意思是public WeightedQuickUnionUF(int N)
,对吧?这是你班级的构造函数。每当您创建此类的新实例时,都会调用它,例如new WeightedQuickUnionUF(1)
。
答案 3 :(得分:0)
我认为你是java编程的新手?与定义它的类同名的“方法”,没有返回类型称为构造函数。只要实例化该类的对象,就会执行它。
如果你没有意识到这一点,那么我建议你尝试一些java教程。
答案 4 :(得分:0)
这里没有内部课程。
您已定义了一个名为WeightedQuickUnionUF
的类。通过执行此操作创建类
int n = 42;
WeightedQuickUnionUF myInstanceOfThisClass = new WeightedQuickUnionUF(n);
为了定义类创建代码的样子(kewword new
之后的部分),一个类有一个名为构造函数的方法,它与类本身具有相同的名称,在你的情况下
public WeightedQuickUnionUF(int N)
这表示可以创建类WeightedQuickUnionUF
的实例,并为该方法提供一个名为N
的值。
为了使用它,您的程序需要一个入口点(它来自的地方),如此
public static void main(String args)
{
int n = 42;
WeightedQuickUnionUF myInstanceOfThisClass = new WeightedQuickUnionUF(n);
}
现在你有一个变量,它包含一个名为myInstanceOfThisClass
的类的实例,然后你就可以从控制台窗口或IDE或其他任何东西运行你的类了。