Я не могу определить, будет ли более эффективным использование в моем приложении растущего и уменьшающегося Списка по сравнению с использованием массива Big Bool.
Чтобы подробнее остановиться на этом сравнении и реальной ситуации, вот примерыкаждый вариант, который, как я считаю, у меня есть:
Вариант 1 (список):
public List<int> list = new List<int>();
while (true) { // game loop
list.Add(Random.Range(0-300));
list.Add(Random.Range(0-300));
... // maximum of 10 of these can happen
if (list.Contains(42)) { // roughly 10 - 50 of these checks can be true
list.Remove(42);
}
}
Вариант 2 (массив):
bool[] arr = new bool[300];
while (true) { // game loop
arr[Random.Range(0-300)] = true;
arr[Random.Range(0-300)] = true;
... // maximum of 10 of these can happen
for (int i = 0; i < 300; i++) {
if (arr[i]) { // roughly 10 - 50 of these checks can be true
arr[i] = false;
}
}
}
По сути, мой вопрос таков:
В какой момент слишком большое количество проверок .Contains
становится дороже, чем цикл for
для каждого возможного элемента (в зависимости от моих диапазонов)?
ВАЖНО
Это не вопрос списка или массива.Типы данных важны из-за проверок условий.Так что это, в частности, сравнение целочисленных списков и массивов bool, поскольку эти два параметра могут дать мне одинаковые результаты.