我想比较两个不同维度的数组,然后消除重复项并将结果放入名为 tmp
的数组中
这是代码
ArrayList<String> list = new ArrayList<String>();
HashSet<String> tmp = new HashSet<String>();
try
{
String query1="SELECT ID FROM Apps;";
ResultSet rs = con.createStatement().executeQuery(query1);
while(rs.next())
{
list.add(rs.getString("ID"));
tmp.add(rs.getString("ID"));
}
for(int i=0;i < check.size();i++)//ciclo le checkbox selezionate
{
check.get(i);
String query="UPDATE Apps SET Authorized='1' WHERE ID=" +check.get(i);//vado ad eseguire la query di update
pr=con.prepareStatement(query);
pr.executeUpdate();
tmp.add(check.get(i).toString());
}
System.out.println(tmp);
两个数组的内容为:
check -> [1, 2]
list -> [1, 2, 3, 4, 5]
我想要的结果是tmp -> [3,4,5]
但是控制台显示tmp -> [1,2,3,4,5]
最佳答案
您可以像这样删除重复项:
public static void main(String[] args) {
Set<Integer> tmp = new HashSet<>();
List<Integer> check = new ArrayList<>();
check.add(1);
check.add(2);
List<Integer> list = new ArrayList<>();
for(int i = 1; i <= 5; i++){
list.add(i);
}
tmp.addAll(list);
tmp.removeAll(check);
System.out.println(tmp);
}
关于java - 比较数组并删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54096867/