在数据库mapRule列中包含
我必须删除重复项并需要像这样的输出
怎么弄这个?我从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>
<%
}
}
%>
如何从结果集中删除重复项?
答案 0 :(得分:0)
您应该在数据库端使用您的查询处理此问题,但这是一个简单的示例和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]
如果您使用闪亮的新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));