Я просматривал Интернет, и мне не удалось найти решение.
Вот мой код:
import java.util.ArrayList;
public class Memoire{
int taille; //Size of the memory in bits
boolean flag = true; //At "0" if the memory is fully utelized. Else at "1"
ArrayList pid = new ArrayList(); //Use to store the pid
ArrayList size = new ArrayList(); //Use to store the amount of memory allocated for each pid
public void memoire()
{
}
public void memoire(int qTaille)
{
taille = qTaille;
}
public boolean allouer(int qSize, int qPid,boolean force)//The Process ID (pid) bind the allocated memory to his process
{
int left = verifMemoire(qSize); //Get the remaining memory
if(left < qSize) //If the remaning memory is larger than the request
{
pid.add(qPid); //Store the pid
size.add(qSize); //Store the size
}
else
{
if(force) //If the user want to force the allocation
{
pid.add(qPid); //Store the pid
size.add(left); //Sotre the remaining memory size
}
else
{
return false; //If the user don't want to force, return an error
}
}
return true; //Return the success of the allocation
}
У меня все еще есть Eclipse, который говорит мне, что мне нужно указать и возразить против моего .add ArrayList (size.add (qSize);). Это действительно необходимо?
Это не только ошибка соответствия. Так объявлен список
2 ответа
Укажите тип элементов, которые будут храниться в ArrayList. В этом случае я думаю, что вы храните целочисленные значения в списке size
, поэтому просто определите тип Integer
внутри угловых скобок следующим образом:
ArrayList<Integer> size = new ArrayList();
Если вы используете версию до Java 7:
ArrayList<Integer> size = new ArrayList<Integer>();
Кстати, я бы предложил вам использовать тип интерфейса List
в левой части назначения и указывать реализацию List (например, ArrayList
) только в правой части. Таким образом, вы отделите свой код от конкретной реализации интерфейса:
List<Integer> size = new ArrayList();
Вам необходимо указать, какой тип объекта будет содержать ваш массив.
List<Type> myArrayList = new ArrayList<>()
Или на старых версиях Java вам нужно будет указать дважды
List<Type> myArrayList = new ArrayList<Type>()
Обратите внимание, что этот тип должен быть типом класса, а не типом примитива. Вы не можете использовать int, char, double и т. Д. (Но вы можете использовать Integer, Character, Double). Кроме того, поскольку gundev добавлено к этому ответу, при объявлении рекомендуется использовать тип интерфейса List, а не тип ArrayList. эти типы переменных
Это так же, как вы указываете типы для массивов и других переменных, но с немного другим синтаксисом. Если вам интересно, вы можете посмотреть дженерики или просто взглянуть на исходный код ArrayList
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].