java 集合中的并集、交集、差集

项目对比数据,需要根据redis中和数据库中的数据进行操作redis缓存,简单记录一下处理逻辑。

  public static void main(String[] args) {
        List<String> redisList = new ArrayList<>();
        List<String> dbData = new ArrayList<>(); //dbData 代表数据库数据
        redisList.add("啊");
        redisList.add("欢");
        redisList.add("迎");
        redisList.add("您");

        dbData.add("北");
        dbData.add("京");
        dbData.add("人");
        dbData.add("民");
        dbData.add("啊");
        dbData.add("欢");

        //并集
//        getBingJi(redisList, dbData);
        //交集
//        getJiaoJi(redisList, dbData);

        //差集
        //dbData中没有
//        getDBData(redisList, dbData);
        //redisList中没有
        getRedisData(redisList,dbData);
    }

    private static void getRedisData(List<String> redisList, List<String> dbData) {
        dbData.removeAll(redisList);
        System.out.println("redis没有的数据:" + dbData); // redisList中没有 [北, 京, 人, 民] redis添加
    }

    private static void getDBData(List<String> redisList, List<String> dbData) {
        redisList.removeAll(dbData);
        System.out.println("dbData没有的数据:" + redisList); // dbData中没有 [迎, 您] redis删除
    }

    private static void getJiaoJi(List<String> redisList, List<String> dbData) {
        redisList.retainAll(dbData);
        System.out.println("交集:" + redisList);//[啊, 欢] redis更新
    }

    private static void getBingJi(List<String> redisList, List<String> dbData) {
        redisList.addAll(dbData);
        System.out.println("并集:" + redisList); // 并集:[啊, 欢, 迎, 您, 北, 京, 人, 民, 啊, 欢]
    }

你可能感兴趣的:(java 集合中的并集、交集、差集)