注册 登录
编程论坛 J2EE论坛

HashMap是怎么一回事?

yfzsj 发布于 2007-05-30 11:13, 981 次点击

我写了这样的Bean
package mfkvit;

import java.sql.*;
import java.util.ArrayList;

public class outCentent {
private String title = "",self="",empty="";

private int id,colLen=0;
private ArrayList result = new ArrayList();
public int getID() {
return id;
}

public void setID(int id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public void search(String title, int id) {
Statement smt = null;
ResultSet rs = null;
try {
ConnectionManager.getConnection();
String sql = "select top " + id + " from addKultar where title='"
+ title + "'";
rs = smt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
colLen = rsmd.getColumnCount();
while(rs.next()){
String[] colValue = new String[colLen];
for (int i = 0; i < colLen; i++) {
colValue[i] = ((self = rs.getString(i + 1)) == null ? empty
: self.trim().length() == 0 ? empty : self.trim());
}
result.add(colValue);
System.out.print("OK!");
}
} catch (Exception e) {
}
}
public ArrayList getRS() {
return result;
}
}
在面中调用
jsp:useBean id="outCentent" class="mfkvit.outCentent" scope="page">
<jsp:setProperty name="outCentent" property="*"/>
</jsp:useBean>

<%
outCentent.setID(6);outCentent.setTitle("税务文化");
outCentent.search("税务文化",6);
ArrayList al = outCentent.getRS();

for (int i = 0; i < 6; i++) {
HashMap colValue = (HashMap) al.get(i);
String note = (String) colValue.get("title");

%>
出错了:org.apache.jasper.JasperException: Unable to compile class for JSP:
以前没有过HashMap,在这里感觉是输出我的结果集,可是正确的写法应该是怎么样的?

3 回复
#2
支离破碎2007-05-30 11:27
HashMap colValue = (HashMap) al.get(i);

你的al是ArrayList,你要看一下al里面存的是什么类型的,你转化成HASHMAP当然出错了。
#3
angeloc2007-05-30 11:46
用HASHMAP前你首先得明白它是做什么用的!是否适合在你的代码里使用
HASHMAP是由键值对组成的,它取值是通过键直接取得值所在地址,这点是同链表的遍历取值相区别的,很明显直接取值要比遍历效率高很多,尤其是数据量很大的时候!
#4
yfzsj2007-05-31 10:45
哦,这样呀,谢谢各位了,呵呵
1