Java问题链接列表对象

时间:2010-02-04 17:58:29

标签: java linked-list

我有以下代码: 本质上,方法的数量应该与代码中的相同,我需要从emp_struct类型的对象链接列表的元素中提取字符串。我该怎么做?

import java.util.*;
import java.io.*;

class a1 {

    static LinkedList l1;
    private emp_struct input() throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        emp_struct obj = new emp_struct();
        obj.emp_id = br.readLine();
        obj.name =  br.readLine();
        obj.salary = Double.parseDouble(br.readLine());
        obj.dept = br.readLine();
        try{
            search(obj);
        }catch(Exception e){
            System.out.println(e);
            obj = input();
        }
        return obj;

    }

    boolean search(emp_struct obj)
    {
        int lastIndex = l1.lastIndexOf(l1);
        int begIndex = 0;
        for(begIndex =0;begIndex<lastIndex;begIndex++)
        {
            Object chkCase = l1.get(begIndex);
            String chk = chkCase.getEmpID();
            if(chk.equals(obj.emp_id));
                throw new DuplicateEntryException("Duplicate entry found");

        }           
        return true;
    }
    public static void main(String args[]) throws IOException
    {
        l1 = new LinkedList();
    }
}

class DuplicateEntryException extends Exception {
    String detail;
    DuplicateEntryException(String a)
    {
        detail = a;
    }

    public String toString()
    {
        return "User Defined Exception : "+detail;
    }
}

class emp_struct {
    public String emp_id;
    public String name;
    public double salary;
    public String dept;

    public String getEmpID()
    {
        return emp_id;
    }

    public String toString()
    {
        return emp_id+"\t"+name+"\t"+salary+"\t"+dept;
    }
}

2 个答案:

答案 0 :(得分:0)

在搜索方法中,如果找到该值,则会抛出异常。如果找不到该值,则返回true。这似乎不是最好的方法。

如果找到该值,则不应该返回true,如果它在没有找到它的情况下通过数组,那么你不应该返回false吗?

答案 1 :(得分:0)

这一行

Object chkCase = l1.get(begIndex);

应该是

emp_struct chkCase = (emp_struct)l1.get(begIndex);  

除其他外......