如何给List集合的每个元素添加index序号

有这样一个需求,在excel导出报表的时候,产品经理想在首列加个序号,可能大家就会问了,直接取数据库的id不就可以吗?但是这样会有一个问题,很多时候我们从数据库捞数据出来还会对数据分组排序等一系列的业务操作,这样一来,这个id还会是我们想要的id吗?显然不是的,还有些id可能是分布式id,其长度就有10位之长,是产品经理想要的结果吗 ?显然不是。

这个时候Java8的stream就闪亮登场了:

List userList = new ArrayList<>(); 
userList.add(new User("张三","05-07")); 
userList.add(new User("李四","05-07")); 
userList.add(new User("张三","05-06")); 
userList.add(new User("李四","05-06"));
System.out.println(JSONObject.toJSONString(userList)); 

//排序,把姓名相同的放在一起,再根据时间进行排序 
userList = userList.stream().sorted( 
           Comparator.comparing(User::getUserName) 
           .thenComparing(User::getDate)).collect(Collectors.toList());
System.out.println(JSONObject.toJSONString(userList)); 


//给list每个元素添加序号,可以试下这里如果换

你可能感兴趣的:(Java,java)