如何在java中删除ResultSet中的重复项



数据库中的mapRule列包含

  1. 脚趾深度部分厚度烧伤(紊乱)
  2. 脚趾二度烧伤(病症)
  3. 足部浅表局部厚度烧伤(病症)
  4. 脚趾二度烧伤(病症)
  5. 脚趾深度部分厚度烧伤(紊乱)
  6. 脚趾深度部分厚度烧伤(紊乱)

我必须删除重复,需要像这个一样的输出

  1. 脚趾深度部分厚度烧伤(紊乱)
  2. 脚趾二度烧伤(病症)
  3. 足部浅表局部厚度烧伤(病症)

怎么得到这个?我正在从mysql&我的代码是

代码

<%
            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>
    <%
        }
        }
    %>

如何从结果集中删除重复项?

您确实应该在数据库端用查询来处理这一问题,但这里有一个关于Set的快速示例和简短解释。

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]

如果您使用的是闪亮的新Java8,那么您甚至可以在没有Sets的情况下完成此操作,只需在一个String[]中获得所有结果后使用Stream即可。这里有一个快速的方法:

   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));

相关内容

  • 没有找到相关文章

最新更新