java list下标_Java根据list下标拆分子list的四种方式
根据已有的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 subList = (Map) 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 subList = (Map) originList.stream().collect(Collectors.groupingBy(s -> originList.indexOf(s) >= fromIndex && originList.indexOf(s) < toIndex));
return subList.get(true);
}
}
参考文章:
java list下标_Java根据list下标拆分子list的四种方式相关推荐
- java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式
java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...
- java map 迭代遍历_java 遍历Map的四种方式
java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1.方 ...
- java实现线程的方式_java多线程实现的四种方式
java多线程实现的四种方式1.继承Thread类,重写run方法(其实Thread类本身也实现了Runnable接口) 2.实现Runnable接口,重写run方法 3.实现Callable接口,重 ...
- java xml 方法_Java读取xml的四种方式
Java读取xml的四种方式 在平时工作中,难免会遇到把 XML 作为数据存储格式.面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML ...
- java 获取星期几_java中获取日期是星期几的两种方法
java中取得指定日期是星期几可以采用下面两种方式取得日期是星期几:(推荐:java视频教程) 1.使用Calendar类//根据日期取得星期几 public static String getWee ...
- java json 解析_Java解析JSON的四种方式
一.什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于阅读和编写,同时也易于解析和 ...
- java如何遍历树_java 遍历树的四种方式
java 遍历树的四种方式 最近做一个玫瑰图报表,数据源为TreeJson(树状json),在网上搜集下资料,和大家分享.: 先序遍历 中序遍历 后序遍历 层次遍历 public class Tree ...
- Java遍历Map对象的四种方式
关于java中遍历map具体哪四种方式,请看下文详解吧. 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. 1 2 3 4 Map<Integer, Intege ...
- Java实现文件复制的四种方式
背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制. 实现方式一:使用FileInputStream/FileOutputStream字节流进行文件的复制操 ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
最新文章
- 计算机网页设计布局与排版研究,论计算机网页设计的布局与排版
- AI产业链分布图曝光:1040个玩家,BAT率先步入应用
- 为什么密码比字符串更喜欢char []?
- jquery的sortable拖拽排序插件,顺序没发生改变则不请求
- [MSDN]ASP.NET MVC2(5)MVCRoute和urls
- MySQL工作笔记-解决导入外部sql中文乱码问题
- python玩转android_怎样用python玩安卓版跳一跳
- python左闭右开_漫话:为什么程序员喜欢使用0 ≤ i 10这种左闭右开的形式写for循环?...
- 不定期更新的IDEA功能整理
- 某些面向对象的思想--一步步更新
- android 输入支付密码错误,Android 支付宝支付密码输入界面
- 如何使用阿里云打造离线下载服务器?
- 被称为“圣经”的《计算机体系结构》
- java api微盘_新浪微盘的API Python版封装
- obs录制不了Java_simplescreenrecorder(OBS Studio)录屏没有声音最佳解决方案
- iOS使用CNContact对通讯录增删改查
- python 推导式练习题
- 计算机配置好坏怎么看,怎么看电脑配置,电脑配置好坏信息一目了然-腾讯电脑管家...
- 关于ESM Flag问题
- 公文排版插件for Word/WPS【公文助手——让公文排版更快一点】