2014-07-07 3 views
0

Как реализовать следующую операцию?Как удалить первые X записей в списке <Double>

Допустим, есть список:

List<Double> allStops = getAllStops(); 

Кроме того, есть еще один список:

List<Double> implementedStops = getImplementedStops(); 

Что такое правильный способ удаления кулачные записи X из списка allStops, где Х размер implementedStops?

Например, если список allStops содержит следующие данные:

[0] = 21 
[1] = 25 
[2] = 30 
[3] = 15 

.., а размер implementedStops является 2, то результат должен быть следующим:

[0] = 30 
[1] = 15 
+1

К «Удалить», вы хотите, остальные записи переложить вниз, или вы хотите, удаленные записи будут обнулены вне дома? – awksp

+0

Я хочу получить новый список без первых записей X, чтобы остальные записи были сдвинуты вверх. В моем примере результат должен быть: [0] = 30; [1] = 15 –

+0

Разве это не так просто, как вызвать 'remove (0)' столько раз, сколько нужно удалить записи? – awksp

ответ

1
 int count = 2; 
     List<Double> lst = new ArrayList<>(); 
     lst.add(1.3); 
     lst.add(14.2); 
     lst.add(15.6); 
     System.out.println(lst); 

     List<Double> newlst = count<lst.size()?lst.subList(count, lst.size()):new ArrayList<Double>(); 
     System.out.println(newlst); 
1

You могут использовать subList() - метод:

List<Double> result = allStops.subList(implementedStops.size(), allStops.size()); 
+0

Что произойдет, если реализованоStops.size()> allStops.size()? –

+2

Не было бы логически невозможным? – Kayaman

0

"Удаляет из этого списка все элементы, индекс которых находится междуIndex, inclusive и toIndex, исключительный. "

strings.removeRange(0, 2); 
+2

Я предполагаю, что должны быть строки .remove (0) вместо строк .remove (i); Не так ли? –

+0

Нет, потому что тогда он удаляет только первый элемент – user3774329

+0

@KlausosKlausos проверяет мое редактирование – user3774329

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