Объекты связанного списка вопросов Java - PullRequest
0 голосов
/ 04 февраля 2010

У меня есть следующий кусок кода: По сути, число методов должно оставаться таким же, как в коде, и мне нужно извлечь строку из элемента связного списка объектов типа 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 голосов
/ 04 февраля 2010

Эта строка

Object chkCase = l1.get(begIndex);

должно быть

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

кроме всего прочего ...

0 голосов
/ 04 февраля 2010

В вашем методе поиска, если вы найдете значение, вы выбросите исключение. Если вы не нашли значение, вы возвращаете true. Это не лучший подход.

Если вы найдете значение, если вы не вернете true, тогда, если оно пройдет через массив, не найдя его, не должны ли вы вернуть false?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...