#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;
}