根据已有的list,想根据下标截取一个子list有下列几种方式:
package org.4spaces;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class SplitList {
/**
* 原生代码拆分
*
* @param originList 原始list
* @param fromIndex 拆分开始下标(包含)
* @param toIndex 拆分结束下标(不包含)
* @return 被拆分之后的子list
*/
public List naiveSplit(List originList, int fromIndex, int toIndex) {
List subList = new ArrayList();
if (fromIndex >= 0 && toIndex <= originList.size()) {
for (int i = 0; i < originList.size(); i++) {
if (i >= fromIndex && i < toIndex) {
subList.add(originList.get(i));
}
}
}
return subList;
}
/**
* Java List.subList
*
* @param originList 原始list
* @param fromIndex 拆分开始下标(包含)
* @param toIndex 拆分结束下标(不包含)
* @return 被拆分之后的子list
*/
public List subListSplit(List originList, int fromIndex, int toIndex) {
return originList.subList(fromIndex, toIndex);
}
/**
* Java 8 Collectors.partitioningBy
*
* @param originList 原始list
* @param fromIndex 拆分开始下标(包含)
* @param toIndex 拆分结束下标(不包含)
* @return
*/
public List partitioningBySplit(List originList, int fromIndex, int toIndex) {
Map<Boolean, List> subList = (Map<Boolean, List>) originList.stream().collect(Collectors.partitioningBy(s -> originList.indexOf(s) >= fromIndex && originList.indexOf(s) < toIndex));
return subList.get(true);
}
/**
* Java 8 Collectors.groupingBy
*
* @param originList 原始list
* @param fromIndex 拆分开始下标(包含)
* @param toIndex 拆分结束下标(不包含)
* @return
*/
public List groupingBySplit(List originList, int fromIndex, int toIndex) {
Map<Boolean, List> subList = (Map<Boolean, List>) originList.stream().collect(Collectors.groupingBy(s -> originList.indexOf(s) >= fromIndex && originList.indexOf(s) < toIndex));
return subList.get(true);
}
}
参考文章:
最新评论
网飞没问题, 迪士尼+有解决方案么?
pp助手是安卓手机用的,根本下载用不来苹果
已解决
这样的话数据库里的结构为{"attachment":{"content":"xxx"}}, 要怎么才能变成{"content":"xxx"},从而使结构保持一致?
赞! make test不过的坑都写到的,谢谢楼主~
谢谢你
用了root用户还是一直502是怎么回事呢
student id 是空的