Java 比较对象数组的元素
假设我有一个叫做“Sequence”的类。此类有一个实例变量Java 比较对象数组的元素,java,arrays,object,Java,Arrays,Object,假设我有一个叫做“Sequence”的类。此类有一个实例变量private int[]tab。 还有一些方法可以创建此选项卡,如下所示: public Sequence() { this.tab = fillAnArray(drawsNumber(5, 20)); } private int drawsNumber(int min, int max) { if (min > max) { throw new IllegalArgumentException
private int[]tab
。
还有一些方法可以创建此选项卡,如下所示:
public Sequence() {
this.tab = fillAnArray(drawsNumber(5, 20));
}
private int drawsNumber(int min, int max) {
if (min > max) {
throw new IllegalArgumentException("Wrong range");
}
return new Random().nextInt(max - min + 1) + min;
}
public int[] fillAnArray(int size) {
int[] arr = new int[size];
arr[0] = 1;
for (int i = 1; i < arr.length; i++) {
arr[i] = drawsNumber(arr[i - 1], arr[i - 1] + 10);
}
return arr;
}
公共序列(){
this.tab=fillAnArray(图纸编号(5,20));
}
专用整数绘图编号(整数最小值、整数最大值){
如果(最小值>最大值){
抛出新的IllegalArgumentException(“错误范围”);
}
返回新的Random().nextInt(max-min+1)+min;
}
公共整数[]fillAnArray(整数大小){
int[]arr=新的int[size];
arr[0]=1;
对于(int i=1;i
现在,我想创建一个方法,该方法接受两个序列对象作为参数,并返回相同tab元素的数量。因此,我创建了如下方法:
public int howManyCommonElements(Sequence c1, Sequence c2) {
int i = 0, j = 0;
int counter = 0;
while (i < c1.tab.length && j < c2.tab.length) {
if (c1.tab[i] == c2.tab[j]) {
++counter;
} else if (c1.tab[i] < c2.tab[j]) {
++i;
} else {
++j;
}
}
return counter;
}
public int howmanycommonements(序列c1、序列c2){
int i=0,j=0;
int计数器=0;
而(i
如何比较单个元素,如
c1.tab[I]
,c2.tab[j]
?必须将第一个数组的每个元素与第二个数组的每个元素进行比较。为此,必须使用2个嵌套循环:
for (int i = 0; i < c1.tab.length; i++)
for (int j = 0; j < c2.tab.length; j++)
if (c1.tab[i] == c2.tab[j])
++counter;
for(int i=0;i
如果您有有序元素(ASC),您可以这样做
int i = 0, j = 0;
int counter = 0;
while (i < arr1.length && j < arr2.length) {
if (arr1[i] == arr2[j]) {
++i;
++j;
++counter;
} else if (arr1[i] < arr2[j]) {
++i;
} else {
++j;
}
}
inti=0,j=0;
int计数器=0;
而(i
你不知道如何比较是什么意思?c1.tab[i]==c2.tab[j]
有什么问题?顺便说一句,这是你们代码中的错误,若标签有公共元素,你们的循环将永远不会结束。哎哟,我只是试着使用一些不同于for循环的东西。你是对的,我不知道我怎么看不出这个问题。这回答了你的问题吗?可以用列表代替整数数组吗?不,元素是有序的,你不需要用现有的O(n+m)
来排序元素。。。Idk,如果你注意到了,但是OP从评论中解决了问题,甚至在这里添加答案之前。