【发布时间】:2011-10-16 13:16:44
【问题描述】:
在下面的代码中,如果 jcbValue 的计算结果为 Find,我将其设置为打印 hashmap 的内容。它返回 NULL。我假设这意味着到那时哈希图的内容已被清空。
我的问题如下; 1)我做错了什么? 2) 我该如何解决?
谢谢, CJ
public class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
HashMap<String, ArrayList> map = new HashMap<String, ArrayList>();
String jcbValue = (String) jcbIDF.getSelectedItem();
if (jcbValue == "Insert") {
String Id = jtfId.getText();
ArrayList<String> ValueList = new ArrayList<String>();
String Name = jtfName.getText();
String GPA = jtfGPA.getText();
ValueList.add(Name);
ValueList.add(GPA);
map.put(Id, ValueList);
System.out.println(map);
JOptionPane.showMessageDialog(null, "Record Inserted",
"Result", JOptionPane.INFORMATION_MESSAGE);
// jtfId.setText("");
// jtfName.setText("");
// jtfGPA.setText("");
} else if (jcbValue == "Delete") {
System.out.println(map);
JOptionPane.showMessageDialog(null,
"Delete Selected; But Not Implemented", "Result",
JOptionPane.INFORMATION_MESSAGE);
} else if (jcbValue == "Find") {
System.out.println(map);
JOptionPane.showMessageDialog(null,
"Find Selected; But not Implemented", "Result",
JOptionPane.INFORMATION_MESSAGE);
}
}// Terminates actionPerformed Class
}// Terminates ButtonListenerClass
【问题讨论】:
-
你想看什么?输出应该是什么?你在说什么?我的意思是,您正在创建一个新地图并调用 System.out.println(map)...
-
第一:使用coding conventions,你的代码是一团糟。第二:什么是空?控制台中的输出?
-
为什么不在插入它们之前输入
System.out.println("ID: " + Id + " Name: " + Name + " GPA: " + GPA");并查看它们显示的内容。很有可能会告诉你你做错了什么。 -
@ThomasJ 一团糟?怎么会这样?我看到一个字符串不合适(在最后一个 showMessageDialog 中)。除此之外,他根本没有为类及其终止符缩进,这实际上是一种相当普遍的做法。
-
我认为控制台中的输出应该是 {}... 还是?
标签: java collections hashmap