2012-04-28 2 views
-2

Привет, у меня есть список, где можно сказать, что эти предметы {30 50 5 60 90 5 80}, что я хочу сделать, например, объединить 3-й и 4-й элементы вместе и {30 50 65 90 5 80 }объединить элементы списка

Не могли бы вы рассказать мне, как бы я это сделал? Я использую класс связанного списка java.

+2

Является ли это домашнее задание? Если это так, вы должны пометить его как таковой – ControlAltDel

+0

это не так, я пытаюсь сделать что-то со списком, и я не могу вспомнить, как объединить два элемента в списке. –

+0

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

ответ

0
public class Main { 
    public static void main(String[] args) { 
     List<Integer> list = new LinkedList<>(); 
     list.add(30); 
     list.add(50); 
     list.add(5); 
     list.add(60); 
     list.add(90); 
     list.add(5); 
     list.add(80); 
     System.out.println(list); 
     combine(list, 2, 3); 
     System.out.println(list); 
    } 
    public static void combine(List<Integer> list, int indexA, int indexB) { 
     Integer a = list.get(indexA); 
     Integer b = list.get(indexB); 
     list.remove(indexB); // [30, 50, 5, 90, 5, 80] 
     list.add(indexA, a + b); // [30, 50, 65, 5, 90, 5, 80] 
     list.remove(indexB); // [30, 50, 65, 90, 5, 80] 
    } 
} 

Выход:

[30, 50, 5, 60, 90, 5, 80] 
[30, 50, 65, 90, 5, 80] 

Вам необходимо проверить значения NULLS для избегать NullPointerException

0

Прочтите документацию API для LinkedList. Не существует метода «комбинирования», но есть способ удалить элемент по заданному индексу и метод для вставки элемента в любом месте списка.

http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html

0

Я бы цикл через связанный список (начало в головном узле). Я предполагаю, что для каждого объекта LinkedList существует свойство nextNode, которое позволяет вашему итератору работать. Когда вы переходите к индексу 2 (со значением 5), найдите следующий номер индекса 2 (со значением 60) и добавьте это значение в индекс 2 (со значением 5, равным 65). Затем найдите следующийNode индекса 3 (со значением 60), который указывает на узел со значением 90 (вызовите этот новыйNextNode) и сбросьте свойство nextNode индекса 2 (со значением 5) на этот узел.

0

Связанный список не предоставляет методы выполнения операций над списком, он управляет только списком. Единственный способ сделать это для вас - это получить элементы из указанных мест и добавить их, а затем удалить указанные элементы из списка, а затем вставить новый элемент с помощью индекса.

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