JAVA中两个数组比较的问题

我在页面上有一个公司类型的checkbox,现在是这样的,我在加载这个checkbox页面的时候会从后台传入我以前选过的公司类型,然后问题是:比如我现在加载页面的时候传入的是2,3,4,6这4个类型,然后我修改以后选中的是1,3,7这3个类型,由于类型变了,我现在想把本来有,但是现在没选中的2,4,6这3个类型在数据库中删除,然后添加1,7这两天数据,但是在JAVA中要怎么进行判断呢

3个回答

String mrcType = entity.getMrcType();

    List<RelatedCompanyType> companyTypes = relatedCompanyTypeService
            .selectRelatedCompanyTypeByCompCode(entity.getMrcCode());
    List<RelatedCompanyType> needDelRelatedCompanyType = new ArrayList<RelatedCompanyType>();

    if (StringUtils.isNotBlank(mrcType)) {
        StringBuffer hasExitTypeBuf = new StringBuffer();
        for (RelatedCompanyType relatedCompanyType : companyTypes) {
            if (!mrcType.contains(relatedCompanyType.getCompTypeCode())) {
                needDelRelatedCompanyType.add(relatedCompanyType);
                companyTypes.remove(relatedCompanyType);
            }
            hasExitTypeBuf.append(relatedCompanyType.getCompTypeCode());
        }
        String[] mrcTypes = mrcType.split(",");
        for (String type : mrcTypes) {
            if (!hasExitTypeBuf.toString().contains(type)) {
                RelatedCompanyType relatedCompanyType = new RelatedCompanyType();

                companyTypes.add(relatedCompanyType);
            }
        }
        entity.setCompanyTypes(companyTypes);
    } else {
        needDelRelatedCompanyType = companyTypes;
    }

已经实现了

如果一定要用Java实现,……那就手写呗……如果觉得不优雅可以导一个Guava包,Sets类里有求两个Set差集的静态方法
其实,这种业务反正也要全量更新,好像根本不需要关注类型具体的变化?

niyidusk
niyidusk 已经知道怎么处理了
3 年多之前 回复
niyidusk
niyidusk ..我就是不知道用JAVA该怎么判断,,还是新手
3 年多之前 回复
 你这三个类型值是怎么存的呢,直接用页面当前选择的值,修改原来的值就行了啊,你这就是一个修改操作吧 。
niyidusk
niyidusk 你说的替换原来的值我知道,我现在想要的是,如果原来有的值,现在没有选中的话,那条记录还是要保存着,只是把原来那条数据其中的一个字段状态改一下
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问