【发布时间】:2010-11-03 18:46:46
【问题描述】:
我必须创建一个包含 100 个数字的数组,然后随机打乱前 20 个数字以获得 2 个不同的数组; A 和 B。
对于这个作业,我必须检查数组 A 的前 20 个数字是否是数组 B 的前 20 个数字的子集
到目前为止,我有这个:
import java.util.Random;
public class opgave6 {
public static void main(String[] args){
Verzameling a = new Verzameling(20, 3);
Verzameling b = new Verzameling(20, 4);
System.out.println(Verzameling.deelverzamelingVan());
}
}
class Verzameling {
int[] elementen;
int elementen2;
static int aantal2;
Verzameling(int aantal , int seed) {
elementen = new int[100];
int aantal2 = aantal;
for(int i = 0; i < 100; i++){
elementen[i] = i;
}
Random random1 = new Random(seed);
for(int i = 0; i < 100; i++){
int r = random1.nextInt(100);
int temp;
temp = elementen[i];
elementen[i] = elementen[r];
elementen[r] = temp;
}
printVerzameling(aantal);
}
Verzameling(int seed) {
}
void printVerzameling(int aantal){
for (int i = 0; i < aantal; i++){
System.out.print(elementen[i] + " ");
}
System.out.println();
}
static boolean deelverzamelingVan() {
while (true) {
for(i = 0; i < aantal2; i++){
for(j = 0; j < aantal2; j++){
if(Verzameling.a.elementen[i] = Verzameling.b.elementen[j])
break;
}
}
}
}
}
但是,它根本不起作用,因为我不知道如何比较对象 A 的 elementen[i] 和对象 B 的 element[j]。如何使用静态方法比较两个对象的不同元素同班。
(所以 Verzameling A 和 B 都是 Verzameling 类的实例,使用静态方法检查 A 是否是 B 的子集。如何从 Verzameling A 和 B 获取数组中的数字?)
如果有不清楚的地方请告诉我!我不需要完整的解决方案,只需要如何从对象 A 和 B 访问 elementen[i] 的值。谢谢!
编辑:
这是问题所在:
if(Verzameling.a.elementen[i] == Verzameling.b.elementen[j])
感谢您的评论,但是当我编译时它仍然出错。它说它找不到关于 verzameling.a.elementen、i、verzameling.b.elementen 和 j 的符号。我想我把它命名错了,可以通过说:classname.objectname.variable of object 来调用变量吗?
【问题讨论】:
-
感谢@hvgotcodes 的布局编辑,我似乎从来没有让它工作?你是怎么做到的?
-
您是否复制并粘贴了此代码?还是输入SO?你不应该有一个
=;它应该是==。但是,它不会编译,所以这可能对你没有帮助。 -
@javaa,我在编辑器中使用了代码格式化图标——它是一堆 1 和 0。
-
我想知道你为什么不能使用 List.containsAll(...) 和 Arrasy.asList(....)
-
@Pangea:
Arrays.asList在给定原始数组时不会像您期望的那样工作。List<int[]> list = Arrays.asList(someIntArray)