【问题标题】:How to select distinct value from array items in jsp如何从jsp中的数组项中选择不同的值
【发布时间】:2014-12-16 08:31:09
【问题描述】:

目前,我想显示列表项中的所有值,但我想删除重复值并只向用户显示唯一值。

我尝试实现如下代码,但它不起作用。

<tr>
<td class="col-ss1 col1">Currency</td>
<c:forEach items="${listProducts}" var="item" varStatus="loop">
<td class="col-ss1 "><c:forEach items="${item.terms}" var="term" varStatus="mainLoop">
    <c:if test="${(mainLoop.index - 1) > 0}">
        <c:forEach var="previousTerm" items="${item.terms}" begin="0"
        end="${mainLoop.index-1}" varStatus="inner">
    <c:if test="${term.currencyType == previousTerm.currencyType }">
        <c:set var="flag" value="true"/>
    </c:if>
        </c:forEach>
    </c:if>
    <c:if test="${not flag}">${term.currencyType }</c:if>
</c:forEach></td>
</c:forEach>
<!-- <td class="col-ss1 col2">VNĐ / USD / EURO</td>
<td class="col-ss1 col3">VNĐ / USD / EURO</td>
<td class="col-ss1 col4">VNĐ / USD / EURO</td>
<td class="col-ss1 col5">VNĐ / USD / EURO</td> -->

【问题讨论】:

  • 我真的认为你应该在控制器中(甚至在业务逻辑中)清除列表,而不是在 JSP 中。
  • 为什么不使用 Set 而不是 List 来删除重复项?
  • 是的,我也同意 y ,我们应该在控制器中执行,但是由于我们项目中的逻辑代码,我们必须在 jsp 文件中实现,在这种情况下我很感谢您的帮助。谢谢
  • user23123412 :请解释更多细节......谢谢
  • Set 似乎也可以在 Controller 中处理。您是否尝试添加一个局部变量来重新构造 listProducts,并使用该变量进行循环?

标签: java jsp spring-mvc


【解决方案1】:

强烈建议在服务器端,在 java 类中执行此操作...

List<String> yourListContainingDublicates...
Set<String> uniqueElementsSet = new HashSet<String>(yourListContainingDublicates)

HashSet 构造函数通过调用元素的 equals() 方法来识别重复项。

【讨论】:

  • 是的,但是你想让我把上面的代码写在jsp文件里吗?
  • 当然不是,您应该在服务器端执行此操作,您从集合中创建一个新列表以免破坏您在 jsp 中的代码,或者使用 Set 中的 toArray() 方法。并在 jsp 使用新列表。
  • 是的,我明白你的想法,我也同意 y ,我们应该在控制器中执行,但是由于我们项目中的逻辑代码,我们必须在 jsp 文件中实现,感谢您的帮助案子。谢谢
  • 我仍在寻找最好的方法...:)
  • 如果你必须在jsp中这样做,那么最好的办法是在
【解决方案2】:

您可以使用下面的示例代码供您参考

public class MyDisticntElements {


public static void printDistinctElements(int[] arr){

    for(int i=0;i<arr.length;i++){
        boolean isDistinct = false;
        for(int j=0;j<i;j++){
            if(arr[i] == arr[j]){
                isDistinct = true;
                break;
            }
        }
        if(!isDistinct){
            System.out.print(arr[i]+" ");
        }
    }
}

public static void main(String a[]){

    int[] nums = {5,2,7,2,4,7,8,2,3};
    MyDisticntElements.printDistinctElements(nums);
}
}

【讨论】:

    猜你喜欢
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多