javalist下标_Java根据list下标拆分⼦list的四种⽅式
根据已有的list,想根据下标截取⼀个⼦list有下列⼏种⽅式:
package org.4spaces;
import java.util.ArrayList;
import java.util.List;java中split的用法
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.(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 subList = (Map) originList.stream().collect(Collectors.partitioningBy(s -> originList.indexOf(s) >= fromIndex && originList.indexOf(s) < toIndex));
(true);
}
/**
* Java upingBy
*
* @param originList 原始list
* @param fromIndex 拆分开始下标(包含)
* @param toIndex 拆分结束下标(不包含)
* @return
*/
public List groupingBySplit(List originList, int fromIndex, int toIndex) {
Map subList = (Map) originList.stream().upingBy(s -> originList.indexOf(s) >= fromIndex && originList.indexOf(s) < toIndex));
(true);
}
}
参考⽂章:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论