java - 比较数组并删除重复项

标签 java arraylist

我想比较两个不同维度的数组,然后消除重复项并将结果放入名为 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/

相关文章:

java - Jenkins 将自己的日志记录添加到 Maven 构建过程中

java - 添加 hashmap 和 arraylist 时出现内存不足错误

java - 如何将 String 转换为 int 并使用 Comparator 进行比较

java - 多线程 Java 应用程序中的 ConcurrentModificationException

java - 将字符串从 Activity 传递到广播接收器,然后传递到 Service

java - 输出不打印到txt文件Java

java - 尝试上传时无效的 CSRF token Spring 4 MVC

java - 比较两个列表并删除两个列表中的值的更短方法?

java - Android - sqlite in 子句使用数组列表中的字符串值?

java - 如何将循环链表排入队列,同时确保最后一个元素指向第一个元素?