2014-02-03 4 views
0

У меня проблемы со связанным списком, над которым я работаю. Я создал свой собственный связанный список объектов Employee. Каждый объект Employee содержит все ваши обычные данные, такие как имя, адрес, контактная информация, зарплата, годы работы и т. Д.Изменить все объекты в связанном списке - java

Что я пытаюсь создать метод в моем классе списка, который изменит все объекты в списке. Например, я мог бы увеличить «годы работы» на 1, или я мог бы увеличить «зарплату» всех сотрудников в списке на 5%, чтобы дать каждому повышение.

+1

Можете ли вы опубликовать реализацию класса ListNode? – danielz

+0

Я добавил класс ListNode – user3189015

ответ

0

В идеале вы должны иметь метод GET для класса ListNode в виде listNode.getEmployee(), а затем вы можете просто обрабатывать этот объект как объект Employee. Так, например:

ListNode temp = first; 
while (temp != null){ 
    temp.getEmployee().incrementYears(1); 
    temp = temp.getNext(); 
} 

Но его трудно сказать, если мы don'the ListNode и Employee реализации классов.

+0

Спасибо, это то, что я искал. Связанные списки настолько сложны ... – user3189015

0

Если поля сотрудников не были установлены частные:

LinkedList<Employee> employees; //employee instance variable 

... 

public void increaseYrsEmployment() { 
    for (Employee e : employees) e.yrsEmployed++; 
} 

Если поля сотрудников устанавливаются в частном порядке, вы можете добавить методы получения и установки в классе Employee, чтобы включить поля, которые будут доступны и изменены ,

+0

Ну, я хочу создать список и запустить метод в моей основной части, сохранив определение в моем классе списка. Я обновил оригинальный пост, чтобы показать это. – user3189015

+0

Да, но каков объем полей Employee? –

1

так что вы должны вызвать метод изменения по каждому объекту внутри списка

LinkedList<Employee> employees = new ArrayList<Employee>(); 

public void increaseYearOfEmployment() { 
    for (Employee e : employees) 
      e.yrsEmployed++; // instance variable 
} 

public void increaseSalary() { 
    for (Employee e : employees) 
      e.yrsSalary++;  // instance variable 
} 
Смежные вопросы