2016-03-22 3 views
0

Это часть моего текущего кода Список : Проверить, равен ли к Int

Класс usedCoords содержит:

public List<Integer> USEDX = new ArrayList<Integer>(); 

main функция содержит:

if(fX % gridX == 0 && fZ % gridZ == 0 && ALPHA != 0 && usedcoords.USEDX == fX) { } 

Примечание Я также сделал : usedCoords usedcoords = new usedCoords();, вот почему я назвал его usedcoords.

Моей главной задачей является то, что я хочу сделать usedcoords.USEDX == fX возможным. В настоящее время я получу ошибку, потому что fX is an integer. USEDX также имеет целые числа, и как проверить, что любое целое число в USEDX равно fX?

Заранее спасибо.

+2

http://stackoverflow.com/questions/9342859/i-need-to-find-a-integer-data-in-arraylist Вы также можете проверить этот вопрос – denis

+0

Не удалось найти его, потому что я не знал как это выразить! Lol – RACING121

+1

Вы должны переименовать заголовок вопроса, что довольно сбивает с толку. – manouti

ответ

3

Использование List#contains() - и это более читаемым и обычные не иметь имена переменных начинаются с заглавной буквы, если они не являются постоянными:

if (fX % gridX == 0 && fZ % gridZ == 0 && alpha != 0 && usedcoords.usedX.contains(fX)) { 
    ... 
} 

int переменная fX будет автоматически упаковывается в Integer типа компилятором ,

+0

Хорошо работает, но я помнил, что fX был float, но я исправил его преобразованием (int) fX – RACING121

+0

. В этом случае вы можете потерять точность (как '3.0', так и' 3.3' будут сопоставляться с '3' в списке). В идеале вы должны иметь «Список ». – manouti

+0

Правда, но я также удостоверился, что он делится на 4 (так что он всегда будет целым). Мне просто нужно было держать их как плавающие, потому что я хотел облегчить его с помощью Vector3f (s) – RACING121

3

USEDX также имеет целые числа, и как проверить, что любое целое число в USEDX равно fX?

Позвонив List.contains(Object) которые возвращает true, если этот список содержит указанный элемент. Нечто подобное,

if (USEDX.contains(fx)) { 
    // ... 
} 
0

Для эффективности-сакэ, вы можете использовать Hashtable<Integer> вместо List, поскольку он требует O (1) (постоянное) времени для поиска значения.

Смежные вопросы