Как изменить размер массива-списка в соответствии с размером заданного массива-списка в JAVA

#java #arrays

#java #массивы

Вопрос:

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

 Double[] x = {
  14.2, 16.4, 11.9, 15.2, 18.5, 22.1, 19.4, 25.1, 23.4, 18.1, 22.6, 17.2
};
Double[] y = {
  17.5, 14.2, 12.2, 16.0, 19.3
};

ArrayList<Double> aListX = new ArrayList<>(Arrays.asList(x));
ArrayList<Double> aListY = new ArrayList<>(Arrays.asList(y));
  

Я хочу, чтобы ArrayList aListX имел тот же размер, что и ArrayList aListY

Результат:

 aListX.size() = 5
  

Комментарии:

1. И что следует удалить?

2. Похоже, вам нужен алгоритм Таноса

3. Имеет ли значение, какие значения вы удаляете из большего списка? Или вы хотите распределить значения по обоим спискам?

4. @JoakimDanielson в этом случае сохраните первые пять элементов

5. Список массивов<Двойной> aListX = новый список массивов<>(Arrays.asList(x).подсписок(0, y.длина));

Ответ №1:

Это способ сделать это 🙂

     aListX = new ArrayList<>(aListX.subList(0, aListY.size()));
  

Ответ №2:

Если вы можете объявить список как List вместо ArrayList

 List<Double> aListX
  

затем вы можете сделать

 aListX = aListX.subList(0, aListY.size());
  

Ответ №3:

Вы можете использовать итератор для удаления элемента после 5-го индекса

 Iterator iterate = aListX.iterator();
int index = 0;
while (iterate.hasNext()) {
    iterate.next();
    if (index >= aListY.size()) {
        iterate.remove();
    }
      index;
}