分享好友 最新动态首页 最新动态分类 切换频道
Java List Sublist
2024-12-26 23:15

在Java中,List是一个非常常用的集合类型,可以方便地存储一组元素并进行各种操作。而当我们需要获取List中的某一部分时,可以使用subList方法。本文将详细阐述subList方法的使用及注意事项。

Java List Sublist

subList方法是List接口的一个成员方法,用于获取列表中指定范围内的子列表。它的声明如下:

List subList(int fromIndex, int toIndex)

其中,fromIndex是子列表的起始下标(包含),toIndex是子列表的结尾下标(不包含)。例如,如果我们要获取列表的前3个元素,代码应该是这样的:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
List<Integer> subList = list.subList(0, 3);

这样,subList就会成为一个包含1、2、3三个元素的List。

1. subList生成的子列表与原列表共享底层数组

这意味着,修改子列表中的元素会直接影响到原列表中对应位置的元素。例如,我们使用上文中的代码创建了一个列表和一个子列表:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
List<Integer> subList = list.subList(0, 3);

然后,我们修改子列表中的第一个元素:

subList.set(0, 5);

这时,原列表中的第一个元素也会变成5。

2. subList生成的子列表支持随机访问但不支持修改结构

随机访问是指,我们可以通过下标来直接访问子列表中的元素。例如:

int elem = subList.get(1); // 访问子列表中的第二个元素

但如果我们尝试修改子列表的结构,例如添加或删除元素,就会抛出UnsupportedOperationException异常。例如:

subList.add(5); // 抛出异常
subList.remove(1); // 抛出异常

因此,如果需要对子列表进行结构性修改,最好还是使用原列表来操作。

3. subList方法返回的是原列表的一个视图

这意味着,如果我们对原列表进行了修改,子列表也会受到影响。例如:

list.add(5); // 向原列表中添加一个元素
int size = subList.size(); // 子列表的长度变为4

这是因为子列表只是原列表的一个阶段性视图,它们共享同样的底层数组。

以下代码示例展示了如何使用subList方法来实现对列表的分页操作。

1. 生成数据列表

List<Integer> dataList = new ArrayList<>();
for (int i = 1; i <= 50; i++) {
    dataList.add(i);
}

2. 分页获取数据

int pageSize = 10; // 每页数据条数
int totalPage = dataList.size() % pageSize == 0 ? dataList.size() / pageSize : dataList.size() / pageSize + 1; // 总页数
for (int i = 1; i <= totalPage; i++) {
    // 计算当前页数据在列表中的下标范围
    int fromIndex = (i - 1) * pageSize;
    int toIndex = i * pageSize > dataList.size() ? dataList.size() : i * pageSize;
    // 获取当前页数据列表
    List<Integer> pageDataList = dataList.subList(fromIndex, toIndex);
    // 打印当前页数据
    System.out.println("第" + i + "页数据:" + pageDataList);
}

以上代码会将50个数据分为5页,每页10个。输出结果如下:

最新文章
一键搭建QQ销售,助力业务腾飞
轻松搭建,助您业务腾飞!只需简单操作,即可创建专属,拓展商机,提升业绩,让您的业务快速起飞!确立的目标与挑选适宜的建站打造的风格与布局丰富的功能性优化的搜索引擎排名推广的策略与实施在互联网的飞速进步下,营销已成为商家拓展市
轻松生成惊艳美女写真,打卡AI绘图新趋势!
在社交媒体和自媒体盛行的今天,拥有一张美丽的侧脸或者个性凸显的独特魅力照,似乎已经成为了一种新时尚。想象一下,宝子们,只需通过一个简单的工具,就能轻松生成出让人惊叹的美女写真,是不是听起来十分诱人呢?今天,我带大家深度探讨
用AI工具生成超真实美女写真,不可错过的使用攻略!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数字化不断发展的时代,越来越多的人寻求通过现代科技来满足个人的视觉需求。你是否曾
爸爸出国以后无忌妈妈的说说心情:1. 爸爸出国后,妈妈的心情与无奈
当家庭成员离开,尤其是父亲这样的角色时,母亲和孩子的生活会受到深刻影响。对于无忌来说,他经历的是一种空虚与失落感,因为在他心中,父亲不仅是一位家长,更是指引他成长的重要人物。而这种缺席并不只是身体上的远离,也意味着情感支持
黑龙江抖音电商培训机构排名2024-12-10 13:46:35 访问:17次
美迪电商教育创建于2013年,现有13大校区,120人电商团队,总面积5500平方教学场地,是华南专业的电商培训机构。我们致力于为企业打开电子商务大门,为企业提供专业、便捷、全方位的互联网电商教育服务。美迪电商下依托自身完善的教学体系
马斯克:“我为暴风骤雨而生,风平浪静不合适我。”
《更新书堂》·第519篇内容来源|本文摘编自中信出版集团书籍《埃隆·马斯克传》沃尔特·艾萨克森著责编| 明月楼排版| 拾零第8732篇深度好文:7628字 | 20分钟阅读埃隆·马斯克,这位科技界的“摇滚明星”,每一步都吸引着全世界的目光。他
uu陪伴上门陪玩软件搭建APP(小程序、开发、系统)
上门陪玩app开发,软件搭建,程序制作、系统设计囜匇乣我们是软件开发公司!软件开发公司!软件开发公司!不是此平台方!请熟知,以下分享的内容为个人观点,有需要做软件的朋友请联系·····在陪玩平台源码开发中通常会利用消息队列以
选择取向游戏哪个好 好玩的选择取向游戏排行
在这篇文章中,读者将发现一篇关于选择取向游戏的精选指南。它深入探讨了当前市场上热门好玩的选择性角色扮演游戏,通过排行榜的形式为玩家揭示了那些备受好评和娱乐性极高的游戏。无论你是策略爱好者还是剧情追求者,都能在这里找到适合自
男生最爱 八款Android热门动作游戏推荐
第1页:  【IT168 导购】从街机到家用机,再到现在的智能手机,一直以来动作游戏(Act)以独有的魅力吸引着众多男生,动作游戏模式场景,情节简单而紧张,通常以围绕主角人物进行闯关,最后结果除非是打败BOSS,救出心爱的人,成功保卫和平
【微课堂】幼儿自我刺激行为及其干预方法
靖儿康微课堂一.自我刺激行为产生的原因自我刺激行为的产生可能与其病源有关,是由幼儿生理或心理功能缺陷所致。即幼儿试图以各种机械性行为,引导身体不断地、反复不停的节律动作,以补充或替代心理或生理活动的不足。从自我刺激行为的功
相关文章
推荐文章
发表评论
0评