1.CallInfo 实体类
public class CallInfo implements Serializable{
private static final long serialVersionUID = 1L;
private String callbackurl="数据反馈接收地址";
public String getCallbackurl() {
return callbackurl;
}
public void setCallbackurl(String callbackurl) {
this.callbackurl = callbackurl;
}
@Override
public String toString() {
return "CallInfo{" +
"callbackurl='" + callbackurl + '\'' +
'}';
}
}
List 按照元素属性去重
- 按元素属性去重
处理前:
list:[CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl=''}, CallInfo{callbackurl='dingding.com'}]
处理后:
list:[CallInfo{callbackurl=''}, CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl='dingding.com'}]
List<CallInfo> list = callInfoDao.findCallInfoList();
list = list.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getCallbackurl()))), ArrayList::new));
按照条件过滤集合并完善元素属性值
- 按条件过滤元素
- 修改元素属性值
处理前:
list:[CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl=''}, CallInfo{callbackurl='dingding.com'}]
处理后:
list:[CallInfo{callbackurl='http://baidu.com'}, CallInfo{callbackurl='http://baidu.com'}, CallInfo{callbackurl='http://dingding.com'}]
List<CallInfo> list = callInfoDao.findCallInfoList();
list = list .stream().filter(o -> StringUtils.isNotEmpty(o.getCallbackurl())).map(e->{
e.setCallbackurl("http://" + e.getCallbackurl());
return e;
}).collect(Collectors.toList());
List 转 Map
- list2Map
处理前:
list:[CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl=''}, CallInfo{callbackurl='dingding.com'}]
处理后:
map:{=CallInfo{callbackurl=''}, baidu.com=CallInfo{callbackurl='baidu.com'}, dingding.com=CallInfo{callbackurl='dingding.com'}}
List<CallInfo> list = callInfoDao.findCallInfoList();
Map<String, CallInfo> map = list.stream().collect(Collectors.toMap(CallInfo::getCallbackurl, t -> t, (a, b) -> a));
List 抽取元素属性集合
- 集合元素属性抽取
处理前:
list:[CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl=''}, CallInfo{callbackurl='dingding.com'}]
处理后:
urlList:[baidu.com, baidu.com, , dingding.com]
List<CallInfo> list = callInfoDao.findCallInfoList();
List<String> urlList = list.stream().map(CallInfo::getCallbackurl).collect(Collectors.toList());
List 按照条件过滤后组装集合,字符串集合去重后按照特殊字符分割拼接
- 按条件过滤元素
- 集合元素去重
- 按特殊分隔符拼接属性为字符串
处理前:
list:[CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl=''}, CallInfo{callbackurl='dingding.com'}]
处理后:
urlList:[baidu.com, baidu.com, dingding.com]
urlStr:baidu.com,dingding.com
List<CallInfo> list = callInfoDao.findCallInfoList();
List<String> urlList = list.stream()
.filter(o -> StringUtils.isNotEmpty(o.getCallbackurl()))
.map(CallInfo::getCallbackurl)
.collect(Collectors.toList());
String urlStr = urlList.stream().distinct()collect(Collectors.joining(",".intern()));
List 按照元素属性排序
处理前:
list:[CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl='z.com'}, CallInfo{callbackurl=''}, CallInfo{callbackurl='dingding.com'}]
处理后:
list:[CallInfo{callbackurl='z.com'}, CallInfo{callbackurl='dingding.com'}, CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl=''}]
list:[CallInfo{callbackurl=''}, CallInfo{callbackurl='baidu.com'}, CallInfo{callbackurl='dingding.com'}, CallInfo{callbackurl='z.com'}]
List<CallInfo> list = callInfoDao.findCallInfoList();
list = list.stream()
.sorted(Comparator.comparing((CallInfo o) -> (o.getCallbackurl()), Comparator.nullsFirst(Comparator.reverseOrder())))
.collect(Collectors.toList());
list = list.stream()
.sorted(Comparator.comparing((CallInfo o) -> (o.getCallbackurl()), Comparator.nullsFirst(Comparator.reverseOrder())).reversed())
.collect(Collectors.toList());