我需要从项目数组中删除重复项

| 我不是真正的编码人员,因此在我所说的代码的不同方面时,请保持开放的胸怀。我对真正叫什么东西可能完全错了... 无论如何,我(相信)我有一个包含大量不同数据的项目数组,每个项目都附有这些数据。然后,我遍历此Array,将内容放入我的jsp。问题是数组包含重复项,我不希望主页上的演示文稿中重复项。 我像一个怪胎一样在谷歌上搜索,我发现删除重复项的方法是将数组转换为集合,因为集合不能包含重复项。很公平。我查看了不同的页面,描述了如何执行此操作,但我不明白:( 它可能非常简单,但是根据我的理解,这些集合包含字符串,并且对我来说不会这样做,因为我的商品具有大量附加到它们的数据item.name,item.type等。 我使用的代码是
<c:forEach items=\"${results.searchResults}\" var=\"foundItem\" varStatus=\"status\">
    <c:set var=\"curItem\" value=\"${foundItem.item}\" />
    <%-- get item details --%>
    <xmlfeed:getItemXML item=\"${curItem}\" />
</c:forEach>
我想做的是确保所有curItem都是唯一的。我敢打赌,做到这一点的最佳方法是确保将\“ results.searchResults \”数组设置为一个集合,然后再转回去,但我只是不知道该怎么做。 也许值得一提的是,上面的代码实际上已经在具有以下可用标记库的标记中: taglib前缀= \“ c \” uri = \“ http://java.sun.com/jsp/jstl/core \” taglib前缀= \“ fmt \” uri = \“ http://java.sun.com/jsp/jstl/fmt \” 当然还有自定义xmlfeed tablib     
已邀请:
        在您的“ 1”对象中有一个“ 2”变量?您可以将其更改为
Set<String> searchResults;
,然后使用设置器或任何其他为
searchResults
变量设置数据的方法更改为do5ѭ。 以下代码可能不是您的确切方法,但是它将有助于您找到自己的方法.....
public class Result {

    private List<String> result;
    private Set<String> searchResults;

    public Set<String> getSearchResults() {
        return searchResults;
    }

    public void setResult(List<String> result) {
        this.result = result;
        this.searchResults = new HashSet<String>(result);
    }
}
Servlet代码,
List<String> list = new ArrayList<String>();
list.add(\"A\");
list.add(\"B\");
list.add(\"A\");
list.add(\"B\");
list.add(\"A\");
Result result = new Result();
result.setResult(list);
request.setAttribute(\"result\", result);

request.getRequestDispatcher(\"testPage.jsp\").forward(request, response);
在JSP中,
<c:forEach items=\"${result.searchResults}\" var=\"foundItem\" varStatus=\"status\">
    <c:set var=\"curItem\" value=\"${foundItem}\" />
    ${curItem}<br>
</c:forEach>
    
        
    public Set<String> searchResults()
{
    List<String> list = new ArrayList<String>();
    list.add(\"A\");list.add(\"B\"); list.add(\"A\");list.add(\"B\");list.add(\"A\");
    return new HashSet<String>(list);
}
上面的代码返回唯一列表。     

要回复问题请先登录注册