gpt4 book ai didi

java - 使用 JSTL 显示 Vector 并跳过重复数据

转载 作者:行者123 更新时间:2023-12-02 05:34:46 24 4
gpt4 key购买 nike

我有一个位置 vector ,其中国家、州和城市都是字符串。我想将数据显示为:USA |德克萨斯州 |奥斯汀、达拉斯、休斯顿...美国 |加利福尼亚州 |洛杉矶,旧金山...

我有:

   <c:forEach items="${locations}" var="location" >
<h4><c:out value="${location.country.name}"/></h4>
<h4><c:out value="${location.state.name}"/></h4>
<h4><c:out value="${location.city.name}"/></h4>
</c:forEach>

如果国家和州名称与最后一个值相同,跳过国家和州名称的最佳方法是什么。我确信我可以使用 currentCountry 和 currentState 的局部变量来不显示重复的值。我只是想知道最佳实践。

谢谢

最佳答案

最好也是最简单的方法是将列表(在 vector 类型中)添加到集合中,例如 HashSet。您可以将 location.city.name 列表添加到集合中,使用循环,重复项将自动从集合中删除,然后显示您的城市集合。

 Set<String> setOfCities = new HashSet();
for(int i = 0; i< setOfCities.size(); i++){
setOfCities.add(location.city.name);
}

或者,如果您想直接添加位置列表(不是 String 类型),则必须实现 Comparator 接口(interface),以便能够比较位置列表并删除重复项。要重写 equals() 方法,您可以查看这篇文章:https://stackoverflow.com/a/5741080/3010827

关于java - 使用 JSTL 显示 Vector 并跳过重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com