<%
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字段有重复的值,上面这个是我试了很多中方法中的一种,都不能实现,大家帮帮出点注意。
感激不禁!
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字段有重复的值,上面这个是我试了很多中方法中的一种,都不能实现,大家帮帮出点注意。
感激不禁!
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即可