您的位置:首页 > 编程语言 > Java开发

set java 小结

2014-12-03 19:41 183 查看
遇到一个问题 例如

传过来的字符串是1,2,8,10 现在要在里边添加一个5  变成1,2,5,8,10;

一开始的想法是先1,2,8,10后边加上,5 然后,切分 然后拼装

来发现set就可以完成这样的操作

上代码

    public Result addProperty(String ids, String props) {

        Result result = new DefaultResult();

        try {

            String[] flags = props.split(",");

            Set<String> set = new HashSet<String>();

            set.addAll(Arrays.asList(flags));

            List<Number> nums = new ArrayList<Number>();

            String[] idStrings = ids.split(",");

            for(String id:idStrings){

                if(id!=null){

                    nums.add(Long.valueOf(id));

                }

            }

            List<Activity> activities = activityDao.findByIds(nums);

            for(Activity activitiy : activities){

                Long flag = activitiy.getDocFlag();

                if(flag == null){

                    flag = DocFlagUtils.toLongFlag(props);

                    activitiy.setFlag(props);

                    activitiy.setDocFlag(flag);

                } else {

                    String dbFlag = DocFlagUtils.toStrFlag(flag);

                    set.addAll(Arrays.asList(dbFlag.split(",")));

                    String newFlags = StringUtils.join(set,",");

                    flag = DocFlagUtils.toLongFlag(newFlags);

                    newFlags = DocFlagUtils.toStrFlag(flag);

                    activitiy.setFlag(newFlags);

                    activitiy.setDocFlag(flag);

                }

                activityDao.update(activitiy);

            }

            result.setResultCode(new ResultCode(ResultCode.SUCCESS, "添加成功"));

        } catch (Exception e) {

            result.setResultCode(new ResultCode(ResultCode.FAILURE, "添加失败"));

            LOG.error("批量添加属性出错!", e);

        }

        return result;

    }

业务是这样的传过来 两个逗号相连的字符串

一个是信用卡id 一个是id里边的属性

首先把属性用,切分成string[] 然后组装成set

这个时候把信用卡原有的属性 用,切分成string[] 放到set里边

set里边有了两个string[] 之后 就可以做到自动排序合并的操作了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 基础 set