Это часть клиента, предоставленная моим профессором, и мне не разрешено вносить в нее изменения.
public static void print (String title, int [] anArray) {
System.out.print(title + ": ");
for (int i = 0; i < anArray.length; i++) {
System.out.print(anArray[i] + " ");
}
System.out.println();
}
public static void main (String [] args) {
System.out.println("\nTesting constructor");
ScoreList list1 = new ScoreList(13);
System.out.println("\nTesting accessor (getter)");
int[] list1_array = list1.getScores();
System.out.println("\nTesting toString");
System.out.print("list1: " + list1);
System.out.println("\nTesting our print method");
print("list1's array", list1_array);
ScoreList list2 = new ScoreList(list1_array);
System.out.println("\nTesting list1 and list2");
System.out.println("list1: " + list1);
System.out.println("list2: " + list2);
System.out.println("\nTesting equals");
System.out.println("It is " + list1.equals(list2)
+ " that list1 is equal to list2");
if (!list1.equals(list2)) {
System.out.println("Error. The equals method does not work correctly");
System.exit(1);
}
Это часть моего кода, которую я написал, которая будет проверенаэтот клиент:
int [] scores;
public ScoreList(int size) {
if (size >= 1) {
this.scores = new int [size];
for(int i = 0; i < this.scores.length; i++) {
this.scores[i] = random(100);
}
}
else {
System.out.println("Length of array must be greater than or equal to 1.");
}
}
public ScoreList(int [] size) {
if (size.length >= 1) {
this.scores = new int [size.length];
for(int i = 0; i < this.scores.length; i++) {
this.scores[i] = random(100);
}
}
}
private int random(int randomAmount) {
Random rand = new Random();
int randomNumber = rand.nextInt(randomAmount);
return randomNumber;
}
public int [] getScores() {
int [] temp = new int [scores.length];
for(int i = 0; i < scores.length; i++) {
temp[i] = this.scores[i];
}
return temp;
}
Ошибка здесь в том, что list1 и list2 никогда не будут равны, потому что у меня есть 2 конструктора, один из которых принимает int в качестве параметра, а другой принимает int [].Они оба вызывают random () одновременно, чтобы предоставить элементы для list1 и list2.Чтобы сделать их равными, я думаю, что должен быть только один конструктор, поэтому random () будет вызываться только один раз.Однако параметры конфликтуют.Вы видите, согласно клиенту, параметр list1 равен 13, int;Параметр list2 - это int [].
Это инструкция, которую я получил от своего профессора о том, как создать конструктор для этого класса:
Конструктор с одним параметром,размер массива оценки этого объекта, который должен быть ≥ 1. Он создает массив заданного размера и затем заполняет этот массив случайными целыми числами от 0 до 100 включительно.