private void setListOrder(List<String> idList, List<Goods> goodsList) {
try {
goodsList.sort((o1,o2)->{
int io1 = idList.indexOf(o1.getId());
int io2 = idList.indexOf(o2.getId());
return io1 - io2;
});
} catch (Exception e) {
e.printStackTrace();
}
}
将 goodsList 按照 idList 的顺序排列;
建立实体类:
@Data
public class Goods {
private String id;
private String name;
public Goods(String id, String name) {
this.id = id;
this.name = name;
}
}
建立测试类:
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoTest {
@Test
public void addGoodsList(){
List<Goods> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
Goods goods = new Goods(String.valueOf(i),"名字"+i);
list.add(goods);
}
list.forEach(System.out::println);
System.out.println("=================");
List<String> idList = Arrays.asList("4","2","5","1");
setListOrder(idList,list);
System.out.println(idList);
System.out.println("=================");
List<String> nameList = list.stream().map(Goods::getName).collect(Collectors.toList());
System.out.println(nameList);
}
private void setListOrder(List<String> idList, List<Goods> goodsList) {
try {
goodsList.sort((o1,o2)->{
int io1 = idList.indexOf(o1.getId());
int io2 = idList.indexOf(o2.getId());
return io1 - io2;
});
} catch (Exception e) {
e.printStackTrace();
}
}
}