关于LIST的取值问题!
我在JSP中做好了所有的工作,现在值是放在LIST中的,像这样取值的时候
String s = list.get(i).toString();
s里面是“类名.方法名.5a2eaa,类名.方法名.5a2ebb,类名.方法名.5a2ecc”
这样的值,要怎么取才能吧这些值变成我想要的呢??
还有,我要吧这些值放进Select标签里面去。是这样做的
<%
for (int i = 0; i < list.size(); i++) {
String s = list.get(i).toString();
out.println( " <option> " + s + " </option> ");
}
%>
得到的值不会换行,这是为什么?
请大家指点迷津!!!
------解决方案--------------------关注..我也遇到.不过我自己加上了一个\n来解决.应该有别的不用加\n来解决的方法吧
------解决方案--------------------debug一下
你放的时候,放进去的是什么值
然后
如果值是正确的
接着看下去
你应该放进去的是一个对象是吧?
那么取出来的话
应该list.get(i)强制转换为这个对象
然后再取这里的方法应该就好了
------解决方案--------------------List l = 你的list
Iterator it = l.iterator();
while(it.hasNext()){
你的VO rv = (你的VO)it.next();
rv.getXXX();
}
------解决方案--------------------可能传进去list了一个类,然后又用toString输入,同时没有重写类里面的toString方法,所以转换出来的String值是“类名.方法名.5a2eaa”
------解决方案--------------------ClassCastException!!
转型错误~你放进去的对象不是目标类型的实体
------解决方案--------------------哪有你这么弄的啊
..................
------解决方案--------------------我猜是你的这个类里面没有重写toString方法,所以你这样直接.toString();的话应该得到的是一个地址“eafaef***”之类的东西;得到的就是就是一个表示地址的字符串,还换啥行呢?
按照楼上的哥们说的 做强制类型转化出来~~~每个分别取~~
不知道是不是这样的状况~~~
------解决方案--------------------List放进去的都是对象啊
基本数据类型不用强制转换
但是非基本数据类型就需要强制转换了
你放进去的肯定不是基本数据类型
所以必须转换的
照着楼上的做就行了
------解决方案--------------------Java2容器类类库的用途是“保存对象”,它分为两类:
Collection----一组独立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set不能有重复元素。
Map----一组成对的“键值对”对象,即其元素是成对的对象,最典型的应用就是数据字典,并且还有其它广泛的应用。另外,Map可以返回其所有键组成的Set和其所有值组成的Collection,或其键值对组成的Set,并且还可以像数组一样扩展多维Map,只要让Map中键值对的每个“值”是一个Map即可。
1.迭代器
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
2.List的功能方法
List(interface): 次序是List最重要的特点;它确保维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(只推荐LinkedList使用)。一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和删除元素。
ArrayList: 由数组实现的List。它允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素,因为这比LinkedList开销要大很多。
LinkedList: 对顺序访问进行了优化,向List中间插入与删除得开销不大,随机访问则相对较慢(可用ArrayList代替)。它具有方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast(),这些方法(没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。