Здесь, кажется, есть несколько незначительных проблем. Вот обновленный интерфейс:
package com.simi.practice.work.PracticeWork;
import java.util.*;
import java.lang.*;
public interface Set_of_objects {
boolean equals(Object[] x, Object[] y);
Object cross(Object[] x, Object[] y);
}
В исходном интерфейсе вы не передавали массив как объект. Вы просто передавали интерфейс «тип». Вы должны передать фактический объект Array, однако, чтобы передать Array любому из ваших методов или конструкторов в вашем классе. Мы можем передать объект x и объект y в интерфейс, и любой класс, реализующий интерфейс, очевидно, будет использовать эти методы:
package com.simi.practice.work.PracticeWork;
import java.util.*;
import java.lang.*;
public class Object_array_test implements Set_of_objects{
public boolean equals(Object[]s, Object[]t) {
String v = Arrays.toString(s);
String r = Arrays.toString(t);
if(v.equals(r)) {
return true;
}
return false;
}
public Object[] cross(Object[]s, Object[]t) {
ArrayList<Object> n = new ArrayList<Object>();
for(int x= 0; x<s.length; x++) {
if(s[x].equals(t[x])) {
n.add(s[x]);
}
}System.out.println(n.toArray());
Object[] p = n.toArray();
System.out.println(Arrays.toString(p));
return p;
}
}
В приведенном выше коде вы не знаете, какой тип объекта вы передадите, поэтому мы конвертируем его в строку. Как я отмечал ранее, методы должны принимать Object в качестве аргумента для работы с массивами. Просто передать интерфейс «тип» не будет работать. Затем в методе .equals () мы можем сравнить два массива, чтобы увидеть, идентичны ли они. если нет, код вернет false. Если они идентичны, код вернет true.
И, наконец, давайте проверим класс и вывод:
public class App {
public static void main(String... args) throws IOException, MyException{
Object_array_test test = new Object_array_test();
Object[] i = {1, 2, 3, 4};
Object[] j = {1, 2, 90, 4};
System.out.println(test.equals(j, i));
System.out.println(test.cross(i, j));
}
}
Как видите, эти два массива не равны, и код возвращает значение false. Мы также создали новый массив из списка Array, который возвращает одинаковые числа в Array. Мы возвращаем новый объект, который мы создали, и выводим его на консоль.
А вот ваш вывод:
false
[Ljava.lang.Object;@7852e922
[1, 2, 4]
[Ljava.lang.Object;@4e25154f