不重复输出相同字段的记录

M136540328 2009-03-25 10:05:00
<%
List<String> strs = new ArrayList<String>();

for (Iterator iter = list.iterator(); iter.hasNext();) {//list是个容器,数据里有字段的值是重复的
Book b = (Book)iter.next();
boolean bu = true;
String strb = b.getFenlei2();
for (Iterator j = strs.iterator(); j.hasNext(); ) {
String strj = (String)j.next();
if (strj == strb) {
bu = false;
break b;
}
}
if (bu) {
out.println(" " + strb + "<br>");
strs.add(strb);
}
}
%>
我想实现的是:不重复输出list的那个有数值重复的字段,就是说同样的"String strb = b.getFenlei2();”只输出一次,list里面的fenlei2字段有重复的值,上面这个是我试了很多中方法中的一种,都不能实现,大家帮帮出点注意。
感激不禁!
...全文
56 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
M136540328 2009-03-25
  • 打赏
  • 举报
回复
太谢谢您啦!
hoojo 2009-03-25
  • 打赏
  • 举报
回复
可以用下 数据结构中的函数
zhangzhenting 2009-03-25
  • 打赏
  • 举报
回复
如下是我修改之后的代码:

Iterator<Book> iterator = list.iterator();
Set<String> set = new HashSet<String>();
while (iterator.hasNext()) {
Book book = iterator.next();
String strb = book.getFenlei2();
if (!set.contains(strb)) {
set.add(strb);
}
}


跟你的那个不同,你的那个是用List来存储,我这里换成用Set存储,Set里面是不能存重复的原始的,如果楼主想用List存储,只需重新迭代Set里面的原始存入List即可

81,076

社区成员

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

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