Как поставить локальный центр обработки данных первым в списке, поменяв местами другой центр обработки данных в списке? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть код, в котором мы пытаемся сначала поместить локальный центр обработки данных и сдвинуть все другие центры обработки данных, но этот код вызывает исключение:

В приведенном ниже коде, если CURRENT_LOCATION - это GHI, тогда оно выдает исключение как java.lang.ArrayIndexOutOfBoundsException

  public enum Colocation {
    ABC("ABC", 2), PQR("PQR", 3), DEF("DEF", 4), GHI("GHI", 5), ;

    ...
  }


public static List<Colocation> get() {
  List<Colocation> result = Arrays.asList(Colocation.ABC, Colocation.PQR, Colocation.DEF, Colocation.GHI);
  // first element in the list will always be the local datacenter
  Collections.swap(result, 0, CURRENT_LOCATION.get().ordinal());
  Collections.shuffle(result.subList(1, result.size()));
  return result;
}

То, что я хочу сделать, - что бы это ни было CURRENT_LOCATION, я хочу поставить его первым в списке, а остальные могут быть случайными.

1 Ответ

1 голос
/ 09 мая 2019

Do:

result.remove(CURRENT_LOCATION);
result.add(0, CURRENT_LOCATION);

Или с swap:

Collections.swap(result, 0, result.indexOf(CURRENT_LOCATION.get()));
...