刚才没加注释 现在加上去 大家看看吧

loulanhaojie 2010-06-07 04:23:29

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); // 修改该处的元素
}
这个是接口
有必要的地方我都加注释了

...全文
72 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
numen_wlm 2010-06-07
  • 打赏
  • 举报
回复
顺便,你的getElement方法也有类似的问题,没有判断current为null的情况,直接就return current.element,还是会引起NullPointerException的
numen_wlm 2010-06-07
  • 打赏
  • 举报
回复
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;
}
yueguangkai001 2010-06-07
  • 打赏
  • 举报
回复
错误都帮你找出来了,你也没有必要再发贴了,难道分数多了要给分我?
bekeer 2010-06-07
  • 打赏
  • 举报
回复
空指向异常
应该是实例化某个对象的时候没有赋值
loulanhaojie 2010-06-07
  • 打赏
  • 举报
回复
报错的我也加上来吧
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)
调试的错误是 没有局部变量可用
loulanhaojie 2010-06-07
  • 打赏
  • 举报
回复
这个是界面程序

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();
}
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧