例子:
object test extends App {
val fruits = Seq("apple", "banana", "orange")
println(fruits.map(_.toUpperCase))
println(fruits.flatMap(_.toUpperCase))
}
输出:
List(APPLE, BANANA, ORANGE)
List(A, P, P, L, E, B, A, N, A, N, A, O, R, A, N, G, E)
例子:
object test extends App {
def toInt(s: String): Option[Int] = {
try {
Some(Integer.parseInt(s.trim))
} catch {
// catch Exception to catch null 's'
case e: Exception => None
}
}
val strings = Seq("1", "2", "foo", "3", "bar")
println(strings.map(toInt))
println(strings.flatMap(toInt))
}
输出:
List(Some(1), Some(2), None, Some(3), None)
List(1, 2, 3)
java 的例子:
AppUserDao appUserDao=new AppUserDaoImpl();
dataMap=new HashMap<String, Object>();
JSONObject jsonObject=new JSONObject();
JSONObject resultJson=new JSONObject();
List allresults=new ArrayList<>();
List<JSONObject> lists = appUserDao.find("select jclx.id,jclx.sname,jcxm.sname as sname1,jcxm.id as id1 from jclx left join jcxm"
+ " on jcxm.jclx=jclx.id where qylx=(select top 1 qylx from qyb where id=?) order by jclx.sname", id);
for(int i=0;i<lists.size();i++){
if(null!=lists.get(i).getString("sname1")){
List children=new ArrayList<String>();
String id=lists.get(i).getString("id");
List<JSONObject> small = lists.stream()
.filter(c -> c.getString("id").equals(id))
.collect(Collectors.toList());
for(int j=0;j<small.size();j++){
//当前子所有元素
JSONObject son=new JSONObject();
son.put("name", small.get(j).getString("sname1"));
son.put("id", small.get(j).getString("id1"));
children.add(son);
//son和parentId对应
jsonObject.put(small.get(j).getString("sname"), children);
}
}
}
for(int i=0;i<lists.size();i++){
if(null!=lists.get(i).getString("sname")){
if(i==0){
JSONObject father=new JSONObject();
father.put("name", lists.get(i).getString("sname"));
father.put("id", lists.get(i).getString("id"));
father.put("children", jsonObject.getString(lists.get(i).getString("sname")));
allresults.add(father);
}else if(!lists.get(i).getString("sname").equals(lists.get(i-1).getString("sname"))){
JSONObject father=new JSONObject();
father.put("name", lists.get(i).getString("sname"));
father.put("id", lists.get(i).getString("id"));
father.put("children", jsonObject.get(lists.get(i).getString("sname")));
allresults.add(father);
}
}
}
dataMap.put("all", allresults);
return SUCCESS;
数据库格式:
0A8D6B5BB6E34E8FA03E2A4C002FE64D 机房能效
6B4BF9CE6C1D4C37AC138B18A4335313 节能评估
7914F428457A4F0EA097D401FE291C6B 基础信息 基础信息2 039061C76EA74B6ABFEACBDE371D5C23
7914F428457A4F0EA097D401FE291C6B 基础信息 基础信息1 C89E114CBC554EC5B4FBE85F31B16396
D7A38D6FB94349A383755E2BE298AF8B 空调能效 环境检查 5A26DEF2C8E74E90B81C3CCF6D57F228
D7A38D6FB94349A383755E2BE298AF8B 空调能效 空调检查 D4F006418D2C4C0D8D95CB6BD95CBD43
输出例子:
[
{
"name": "机房能效",
"id": "0A8D6B5BB6E34E8FA03E2A4C002FE64D"
},
{
"children": [
{
"name": "基础信息2",
"id": "039061C76EA74B6ABFEACBDE371D5C23"
},
{
"name": "基础信息1",
"id": "C89E114CBC554EC5B4FBE85F31B16396"
}
],
"name": "基础信息",
"id": "7914F428457A4F0EA097D401FE291C6B"
},
{
"name": "节能评估",
"id": "6B4BF9CE6C1D4C37AC138B18A4335313"
},
{
"children": [
{
"name": "环境检查",
"id": "5A26DEF2C8E74E90B81C3CCF6D57F228"
},
{
"name": "空调检查",
"id": "D4F006418D2C4C0D8D95CB6BD95CBD43"
}
],
"name": "空调能效",
"id": "D7A38D6FB94349A383755E2BE298AF8B"
}
]
主要利用:
String id=lists.get(i).getString("id");
List<JSONObject> small = lists.stream()
.filter(c -> c.getString("id").equals(id))
.collect(Collectors.toList());
找到当前的父节点一样的所有的子节点
来源:CSDN
作者:为不为
链接:https://blog.csdn.net/u011747152/article/details/79035656