2015-12-21 43 views
-4

删除重复在数据库mapRule列包含趾(S)(障碍)趾(障碍)的 如何从结果集中的java

  • 二度烧伤
  • 浅表局部的

    1. 深Ⅱ度烧伤脚的厚度烧伤(障碍)趾(障碍)的
    2. 二度烧伤趾(多个)
    3. 深Ⅱ度烧伤(障碍)
    4. 深趾(S)(障碍)

    我必须删除重复和需要像趾(一个或多个)的本

    1. 深Ⅱ度烧伤的输出(障碍)的部分厚度烧伤
    2. 二脚趾度烧伤(障碍)英尺(障碍)的
    3. 浅Ⅱ度烧伤

    如何获得呢?我从MySQL的&我的代码读取数据是

    CODE

    <% 
          pstm = Con.prepareStatement(selectsql); 
          pstm.setString(1, snomedid); 
          resultSet = pstm.executeQuery(); 
          while (resultSet.next()) { 
           String[] pipe = resultSet.getString("mapRule").split("\\|"); 
           if (pipe.length > 1) { 
         %> 
    
        <p><%=pipe[1]%></p> 
        <% 
         } 
         } 
        %> 
    

    如何从ResultSet中删除重复?

  • +0

    把结果放在'Set '。 – gonzo

    +5

    更好的主意:使数据库以正确的顺序返回唯一的值。这是他的工作。 – Kayaman

    +1

    最简单的方法是在SQL查询级别执行此操作。 – developerwjk

    回答

    0

    你应该真的在数据库端处理你的查询,但这里有一个简短的例子和关于Set的简短说明。

    A Set是一个可自动处理重复项的集合。因此,不是将结果保存到String[],而是删除重复项,尝试将它们保存到Set<String>

    String[] results = {"a", "b", "a"}; //This is just dummy data 
        Set<String> resultsInSet = new HashSet<>(); 
        for (String result: results){ 
         resultsInSet.add(result); //This is how you add a new element to the set 
        } 
        //You can loop through a set just like an array 
        for (String result: resultsInSet){ 
         System.out.println(result); 
        } 
        System.out.println(resultsInSet); //And print the whole set like this 
    

    输出:

    a 
    b 
    [a, b] 
    

    如果您使用的是闪亮的新的Java 8,那么你甚至可以做到这一点没有Sets并且只使用一个Stream你得到所有你的结果在一个String[]后。这是一个快速的方法:

    String[] results = {"a", "b", "a"}; //This is just dummy data 
        String[] uniqueResults = Arrays.stream(results).distinct().toArray(String[]::new); 
        System.out.println(Arrays.toString(uniqueResults)); 
    
    +0

    在我的代码如何更新此设置的字符串? –

    +0

    @bala使用'add()'方法将元素添加到集合中。请看这个例子。 – gonzo