链接列表步骤

时间:2015-05-12 08:52:09

标签: java linked-list

我有这个项目要做,我不知道要穿什么步骤

编写一个java程序,将员工信息存储在链表中,即程序 应该实现以下功能:

  • 功能
    任务
  • 插入新员工
    将新员工添加到已关联的员工                                       列出并存储员工的信息                                       (身份证,姓名,地址,部门,                                        薪水)
  • 更新员工信息
    修改现有员工                                         信息(更改地址和                                        仅薪水)。你应该要求                                         员工ID以更新他/她                                         信息
  • 删除员工
    使用删除员工                                         来自链表的员工ID

程序应显示功能列表,并要求用户输入号码 他/她想要做的功能,然后执行上表中所需的功能。

这就是我做的事情

import java.util.Scanner;
import java.util.LinkedList;
import java.util.Collections;
import java.util.ListIterator;

public class LinkedListEmployee {
    
    //------------start of employee class--------
    private class Employee {
        private String empNumber;
        private String name;
        private String department;
        private int empTest;
        private double salary;
        public Employee() {
            empNumber = null;
            empTest= 0;
            name = null;
            department = null;
            salary = 0.0;
        }
        
    }
    //------------end of employee class--------
    
    
    
    public static void main(String args[]) {
            LinkedList<Employee> empTest = new LinkedList<Employee>();
            System.out.println("\nMENU\n1.Add Employee\n2.Update");
            Scanner in = new Scanner(System.in);
            int choice = in.nextInt();
            if (choice == 2)
                System.out.println("Enter employee’s name");
            String nm = in.nextLine();
           update(nm, empTest);
        }
        public static void update(String namePara, LinkedList<Employee> empTest) {
            ListIterator<Employee> litr = empTest.listIterator();
            Employee tempEmp;
            Scanner in = new Scanner(System.in);
            while (litr.hasNext()) {
                tempEmp=litr.next();
                if (tempEmp.name.equals(namePara)) {
                    System.out.println("Enter new address");
                    String add = in.nextLine();
                    System.out.println("Enter new salary");
                    String sal = in.nextLine();
                    //tempEmp.Empaddress = add;
                    tempEmp.salary = Double.parseDouble(sal);
                    break;
                }
            }
        }
}

它终于有效了吗?或者还有更多的步骤!提到这个问题?

请帮助我了解步骤

1 个答案:

答案 0 :(得分:1)

根据你的评论来回应你得到的错误(&#34; listIterator litr = empTest.listIterator();找不到符号 - 类listlterator&#34;):

listIterator类型未知,您正在寻找ListIterator,因此请更改

listIterator<Integer> litr = empTest.listIterator(); 

ListIterator<Integer> litr = empTest.listIterator(); 

在此之后编辑下一个错误:&#34; ListIterator litr = empTest.listIterator();找不到符号 - 变量empTest&#34;:

该列表仅在主方法的scope内可见,因为它在那里声明。一种可能性是将列表与方法调用一起传递,因此更改

public static void Update(String name) {

public static void update(String name, LinkedList<employee> empTest) {

并将缺少的列表传递给main方法的更新方法:

update(nm, empTest); //instead of Update(nm);

或者,您可以扩大列表的范围并为整个类声明它,如@Dude的注释中所述,但这应该小心处理,因为这会加强对象的保留状态(甚至在这种情况下,有问题。)

除此之外:类型在Java中是大写的(员工应该是Employee),而变量和方法以小写字母开头(Update()应该是update())。请查看this article