public interface MyList {
   public void add(Object o);  
   public void add(int index,Object o); // 添加元素
   public void clear();
   public boolean contains(Object o);
   public Object get(int index);
   public int indexOf(Object o);
   public boolean isEmpty();
   public int lastIndexOf(Object o);
   public boolean remove(Object o);
   public Object remove(int index);
   public Object set(int index,Object o);
   public int size();
   public int getSection(String o);  // 获得元素的位置
   public Object getElement(Object o); // 获取某位置的元素
   public void setElement(Object o);   // 修改该处的元素
}
这个是接口 
有必要的地方我都加注释了

解决方案 »

  1.   

    这个是界面程序import java.awt.*;
    import java.awt.Event.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.*;
    public class TestDemo1 extends JFrame{
    JPanel panel;
    JButton button1,button2;
    JTextField text1,text2;
    JTextArea text3;
       public TestDemo1(){
       super("test");
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       panel = new JPanel();
       getContentPane().add(panel);
       button1 = new JButton("录入");  //添加按钮 标签 文本框
       button2 = new JButton("查询");
       text1 = new JTextField(10);
       text2 = new JTextField(10);
       text3 = new JTextArea(1,15);
           ButtonAction buttonAction1 = new ButtonAction(); // 添加事件响应
       button1.addActionListener(buttonAction1);
       button2.addActionListener(buttonAction1);
       panel.add(button1);
       panel.add(text1);
       panel.add(button2);
       panel.add(text2);
       panel.add(text3);
       setSize(200,150);
       setVisible(true);
       }
       class ButtonAction implements ActionListener{
       MyLinkedList list1 = new MyLinkedList(); // 新建一个链表 处理数据
       public void actionPerformed(ActionEvent e){
       if(e.getSource() == button1){
         list1.add(list1.size(),text1.getText()); //获取文本框的数据,加入链表
         text3.setText((String)list1.toString()); // 在另一个文本框中显示
       }
       if(e.getSource() == button2){
     int n = list1.getSection(text2.getText()); //获取文本框中的元素在链表中的位置
                 text3.setText((String)list1.getElement(n)); //通过函数找到该元素,并在另一个文本框中显示
       }
       }
       }
       public static void main(String[] args){
       new TestDemo1();
       }
    }
      

  2.   

    报错的我也加上来吧 
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jre.MyLinkedList.getSection(MyLinkedList.java:92)
    at jre.TestDemo1$ButtonAction.actionPerformed(TestDemo1.java:42)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    调试的错误是 没有局部变量可用 
      

  3.   

    MyLinkedList.java里面的
    public int getSection(String s) {
    int n = -1;
    Node current = first;
    while (n < size) {
    if (current.element == s) {
    n++;
    break;
    } else {
    current = current.next;
    n++;
    }
    }
    return n;
    }
    写的有问题,没有判断当current.next不存在的时候,也就是说当current.next为null的时候,会有问题
    改成这样
    public int getSection(String s) {
    int n = -1;
    Node current = first;
    while (n < size && null!=current) {
    if (current.element == s) {
    n++;
    break;
    } else {
    current = current.next;
    n++;
    }
    }
    return n;
    }
      

  4.   

    顺便,你的getElement方法也有类似的问题,没有判断current为null的情况,直接就return current.element,还是会引起NullPointerException的