数组作为 java class 中的属性?
Array as an attribute in a java class?
我的作业由几个小任务组成:
- 我必须初始化一个数组并用 200/400/800 个值填充它(每个数量 - 一次)。
- 我必须获取数组值并将其放入红黑树中,并将某些条件转换为方法。
- 还有一些任务。
我可以在主要 class 中完成这一切,但在我看来,我最好开始一个新的 class - handleArray。
如果我开始 class 例如:
public class handlyArray{
protected int [] arr = new int[];
}
但是如果我那样做,我应该写一个 "get" 和 "set" 函数来获取数组的长度吗?
问题是当我这样做时会弹出一个错误 - "Array initilizer expected"。
我在 class 中的附加功能:
public void fillArray(handleArray arr, int k){
Random rand=new Random();
for (int i = 0; i <k ; i++) {
int value = rand.nextInt(1024);
arr[i]=value;
}
}
- 为 redblackTree 创建节点并将它们插入到树中的函数
关于如何构建它有什么建议吗?
我可以构建完全没有属性的 class 吗?
谢谢!
我担心这是家庭作业,所以我会给你一个概述,然后让你做细节。
是的,您可以在新 class 中构建 getter 和 setter,例如:
public int[] getArray() {
return arr;
}
public void setArray(int[] arr) {
this.arr = arr; //
}
至于获取长度,您 不需要 一个方法,因为您可以调用上面的 getter 并询问长度,例如
int arrayLength = handlyArray.getArray().length;
最后是的,你需要先设置你的数组,如果你将一个初始化的数组传递给 setter 就可以了,例如
handlyArray.setArray(new int[] {200, 400, 800});
祝你好运,如果您需要进一步的解释,请随时询问。
我不这么认为。我会在某个地方做一个静态方法:
public static int[] randomArray(int size){
Random rand=new Random();
int[] arr = new int[size];
for (int i = 0; i < size ; i++) {
int value = rand.nextInt(1024);
arr[i]=value;
}
return arr;
}
现在,至于 red/black 树,我认为 TreeSet 是用 red/black 树实现的。
您可以像这样在方法中初始化数组:
public void fillArray(handlyArray arr, int k) {
Random rand = new Random();
arr.arr = new int[k];//<<---------------------Initialize the array
for (int i = 0; i < k; i++) {
int value = rand.nextInt(1024);
arr.arr[i] = value;// Note to fill the array you have to use arr.arr not just arr
}
}
handlyArray 应该是这样的:
public class handlyArray {
protected int[] arr;//<<---------------------Just declare the array
}
要使用 fillArray
方法,您可以使用:
a.fillArray(new handlyArray(), length);
您不能设置数组长度。数组的长度必须在初始化期间设置。您可以在 class:
的构造函数中传递数组的长度
public class HandleArray {
protected int [] arr;
public HandleArray(int length) {
arr = new int[length];
}
}
我的作业由几个小任务组成:
- 我必须初始化一个数组并用 200/400/800 个值填充它(每个数量 - 一次)。
- 我必须获取数组值并将其放入红黑树中,并将某些条件转换为方法。
- 还有一些任务。
我可以在主要 class 中完成这一切,但在我看来,我最好开始一个新的 class - handleArray。
如果我开始 class 例如:
public class handlyArray{
protected int [] arr = new int[];
}
但是如果我那样做,我应该写一个 "get" 和 "set" 函数来获取数组的长度吗?
问题是当我这样做时会弹出一个错误 - "Array initilizer expected"。
我在 class 中的附加功能:
public void fillArray(handleArray arr, int k){
Random rand=new Random();
for (int i = 0; i <k ; i++) {
int value = rand.nextInt(1024);
arr[i]=value;
}
}
- 为 redblackTree 创建节点并将它们插入到树中的函数
关于如何构建它有什么建议吗? 我可以构建完全没有属性的 class 吗?
谢谢!
我担心这是家庭作业,所以我会给你一个概述,然后让你做细节。
是的,您可以在新 class 中构建 getter 和 setter,例如:
public int[] getArray() {
return arr;
}
public void setArray(int[] arr) {
this.arr = arr; //
}
至于获取长度,您 不需要 一个方法,因为您可以调用上面的 getter 并询问长度,例如
int arrayLength = handlyArray.getArray().length;
最后是的,你需要先设置你的数组,如果你将一个初始化的数组传递给 setter 就可以了,例如
handlyArray.setArray(new int[] {200, 400, 800});
祝你好运,如果您需要进一步的解释,请随时询问。
我不这么认为。我会在某个地方做一个静态方法:
public static int[] randomArray(int size){
Random rand=new Random();
int[] arr = new int[size];
for (int i = 0; i < size ; i++) {
int value = rand.nextInt(1024);
arr[i]=value;
}
return arr;
}
现在,至于 red/black 树,我认为 TreeSet 是用 red/black 树实现的。
您可以像这样在方法中初始化数组:
public void fillArray(handlyArray arr, int k) {
Random rand = new Random();
arr.arr = new int[k];//<<---------------------Initialize the array
for (int i = 0; i < k; i++) {
int value = rand.nextInt(1024);
arr.arr[i] = value;// Note to fill the array you have to use arr.arr not just arr
}
}
handlyArray 应该是这样的:
public class handlyArray {
protected int[] arr;//<<---------------------Just declare the array
}
要使用 fillArray
方法,您可以使用:
a.fillArray(new handlyArray(), length);
您不能设置数组长度。数组的长度必须在初始化期间设置。您可以在 class:
的构造函数中传递数组的长度public class HandleArray {
protected int [] arr;
public HandleArray(int length) {
arr = new int[length];
}
}