<%
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("&nbsp;" + strb + "<br>");
strs.add(strb);
}
}
%>
    我想实现的是:不重复输出list的那个有数值重复的字段,就是说同样的"String strb = b.getFenlei2();”只输出一次,list里面的fenlei2字段有重复的值,上面这个是我试了很多中方法中的一种,都不能实现,大家帮帮出点注意。
    感激不禁!

解决方案 »

  1.   

    如下是我修改之后的代码: 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即可