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[] 之后 就可以做到自动排序合并的操作了
传过来的字符串是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[] 之后 就可以做到自动排序合并的操作了
相关文章推荐
- 016Java知识点小结--Set
- java中List、Set、Map集合遍历的几种方式小结和比较
- 黑马程序员----JAVA----集合小结(Set)
- java中Set、List、Map的概念和Map的知识小结
- Java集合工具Map、List、Set、Array使用小结
- Java学习小结
- Java中Set的深入研究
- Java中Set接口及其实现
- java.util.ResourceBundle简单小结
- 两种Java容器类List和Set分析
- 在JAVA中使用文档对象模型DOM经验小结[转载]
- [转] java技术面试基本问题小结
- 数据库连接池Java实现小结
- 两种Java容器类List和Set分析
- Java中Set的深入研究
- java.sql.Connection.creatStatement(int resultSetType,int resultSetConcurrency)中参数的含义
- Java操作Xml的小结
- Java传参方式小结
- 在JAVA中使用文档对象模型DOM经验小结[转载]
- java.until.Map,Set,List的资料整理