niyidusk
niyidusk
采纳率50%
2016-07-01 07:57 阅读 2.1k
已采纳

JAVA中两个数组比较的问题

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    niyidusk niyidusk 2016-07-04 13:39

    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;
        }
    

    已经实现了

    点赞 评论 复制链接分享
  • windowsoahil 解开者 2016-07-01 08:01

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

    点赞 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2016-07-02 04:16
     你这三个类型值是怎么存的呢,直接用页面当前选择的值,修改原来的值就行了啊,你这就是一个修改操作吧 。
    
    点赞 评论 复制链接分享

相关推荐