java8 lambda表达式 map_java 8 Lambda表达式List<Map>转实体,及一些常用方法

public static voidmain(String[] args) {

//排序的条件

List orderRegulation = Arrays.asList("G102", "G103", "G108", "29", "28", "25", "24", "G109", "G105", "26", "21");

//targetList进行排序

List targetList = new ArrayList();

Posts post3= newPosts();

post3.setId("G102");

post3.setName("xiaoli3");

post3.setAge("23");

Posts post2= newPosts();

post2.setId("G103");

post2.setName("xiaoli2");

post2.setAge("22");

Posts post4= newPosts();

post4.setId("G109");

post4.setName("xiaoli4");

post4.setAge("25");

Posts post7= newPosts();

post7.setId("G107");

post7.setName("xiaoli7");

post7.setAge("21");

Posts post8= newPosts();

post8.setId("G101");

post8.setName("xiaoli8");

post8.setAge("26");

Posts post5= newPosts();

post5.setId("G105");

post5.setName("xiaoli5");

post5.setAge("27");

Posts post1= newPosts();

post1.setId("G104");

post1.setName("xiaoli1");

post1.setAge("29");

Posts post6= newPosts();

post6.setId("G106");

post6.setName("xiaoli6");

post6.setAge("23");

Posts post9= newPosts();

post9.setId("G106");

post9.setName("xiaoli9");

post9.setAge("25");

Posts post10= newPosts();

post10.setId("G104");

post10.setName("xiaoli10");

post10.setAge("28");

targetList.add(post1);

targetList.add(post2);

targetList.add(post3);

targetList.add(post4);

targetList.add(post5);

targetList.add(post6);

targetList.add(post7);

targetList.add(post8);

targetList.add(post9);

targetList.add(post10);

System.out.println("排列前的数据:");

targetList.forEach(t-> System.out.print(t.getId() + t.getName() + "~" + t.getAge() + " "));

System.out.println();

setListOrder(orderRegulation, targetList);

System.out.println("排序的规则:");

orderRegulation.forEach(t-> System.out.print(t + " "));

System.out.println();

System.out.println("排列后的数据:");

targetList.forEach(t-> System.out.print(t.getId() + t.getName() + "~" + t.getAge() + " "));

}//平时排序可使用其中一种,下面是综合两个条件排序

public static void setListOrder(List orderRegulation, ListtargetList) {//按照Posts的Id来排序

Collections.sort(targetList, ((o1, o2) ->{int io1 =orderRegulation.indexOf(o1.getId());int io2 =orderRegulation.indexOf(o2.getId());

//如果排序的值多余排序条件里面的值,把多余的值放到排序值的后面if (io1 == -1) {

io1= targetList.size() -io1;

}if (io2 == -1) {

io2= targetList.size() -io2;

}return io2 -io1;

}));//按照Posts的age来排序

Collections.sort(targetList, ((o1, o2) ->{int io1 =orderRegulation.indexOf(o1.getAge());int io2 =orderRegulation.indexOf(o2.getAge());if (io1 == -1) {

io1= targetList.size() -io1;

}if (io2 == -1) {

io2= targetList.size() -io2;

}return io2 -io1;

}));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值