当前位置: 首页 > 编程日记 > 正文

ArrayList的subList方法

李说:

ArrayList的subList方法取到的是ArrayList的一段list,只是其中的一段视图。所以修改subList ,ArrayList同时会修改,因为本来就是同一个东西。

jdk文档中是这样说的:

List<E>subList(int fromIndex, int toIndex) 
          返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。


补充参考网上资料是这样说的:

1,该方法返回的是父list的一个视图,从fromIndex(包含),到toIndex(不包含)。fromIndex=toIndex 表示子list为空

2,父子list做的非结构性修改(non-structural changes)都会影响到彼此:所谓的“非结构性修改”,是指不涉及到list的大小改变的修改。相反,结构性修改,指改变了list大小的修改。

3,对于结构性修改,子list的所有操作都会反映到父list上。但父list的修改将会导致返回的子list失效。

4,tips:如何删除list中的某段数据:

list.subList(from, to).clear();


示例代码:

来自【Java每日一题】20170105,就是看到这个题目才让我知道list的这个方法我没有接触过

package ques;  import java.util.ArrayList;  
import java.util.List;  public class Ques0105 {  public static void main(String[] args) {  List<String> list = new ArrayList<String>();  list.add("a");  // 使用构造器创建一个包含list的列表list1  List<String> list1 = new ArrayList<String>(list);  // 使用subList生成与list相同的列表list2  List<String> list2 = list.subList(0, list.size());  list2.add("b");  System.out.println(list.equals(list1));  System.out.println(list.equals(list2));  }  
}

返回结果如下:

可以发现,list2为list的子list,当list2发生结构性修改(list2.add("b"))后,list也发生相应改变,所以返回结果为false和true

注意:

引自《阿里巴巴Java开发手册》

【强制】  ArrayList 的 subList 结果不可强转成 ArrayList ,否则会抛出 ClassCastException

异常: java . util . RandomAccessSubList cannot be cast to java . util . ArrayList ;

说明: subList 返回的是  ArrayList 的内部类  SubList ,并不是  ArrayList ,而是

ArrayList 的一个视图,对于 SubList 子列表的所有操作最终会反映到原列表上。






本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1971145,如需转载请自行联系原作者



相关文章:

男孩子学计算机和学医哪个好,你认为学医好还是读211大学的电子信息好?

学医的好处。社会的地位和社会认可度较高。无可否认无论是在过去还是在将来&#xff0c;医生因为其救死扶伤的职业特点而被广泛大众所接受和认可。较高的社会地位会让你在将来的择偶、人际关系处理方面显得更有吸引力和话语权。工作稳定有保障。这点其实还是看题主的水平和实力…

Error Creating Control when creating a custom control

如果你在创建ASP.NET的Server Control 是遇到报错&#xff1a; "Error Creating Control" when creating a custom control 原因是 ToolboxData 元数据中的控件名称和控件的类(class)名不同&#xff0c;改为相同即可解决问题。转载于:https://www.cnblogs.com/DotNet…

精选180+Python开源项目,随你选!做项目何愁没代码

编辑 | Jane出品 | Python大本营每一位程序员&#xff0c;每天大部分时间都是在和代码打交道。但是对于广大的普通用户来说&#xff0c;最重要的不是代码&#xff0c;而是代码最终生成的应用程序。但是&#xff0c;每个项目都从头开始自己一行一行码代码&#xff0c;是非常不现…

八年级计算机网络公开课,计算机网络公开课教案.doc

计算机网络公开课教案公开课教案科目&#xff1a;计算机网络课题: 交换机配置文件备份与恢复知识目标:1、在本次课中要向学生传授交换机上传、下载服务器的安装和配置&#xff1b;2&#xff0e;学生学习交换机上传配置命令&#xff0c;完成交换机Flash内存中保存的配置文件上传…

Centos6.5升级系统自带gcc4.4.7到gcc4.8.0

下载 wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2 解压 tar -xjvf gcc-4.8.0.tar.bz2 进入 cd gcc-4.8.0 下载所需软件&#xff08; ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2 ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.…

photofunia

存个链接用~~~[url]http://www.photofunia.com/[/url]转载于:https://blog.51cto.com/wangyublues/120301

学计算机应用好还是汽车维修好,大学汽车运用与维修专业怎么样_学什么_前景好吗-520吉他网...

时间&#xff1a;2019-06-23 来源&#xff1a;网络资源 汽车运用与维修专业怎么样_学什么_前景好吗2019高考填报志愿时&#xff0c;汽车运用与维修专业怎么样、学什么、前景好吗等是广大考生和家长朋友们十分关心的问题。以下是大学生必备网整理的汽车运用与维修专业介绍、…

20T数据、百万奖金,同济和武大摘得开放数据创新应用大赛桂冠!

整理 | Jane出品 | AI科技大本营中国华录杯城市开放数据创新应用大赛&#xff0c;18 日在天津迎来了收官的决赛之战。本次大赛由中国华录集团有限公司和天津市津南区人民政府共同举办。利用天津市人民政府、企业开放的数据资源&#xff0c;吸引了众多国内高校科研团队和科技企业…

rrdtool报错

参考文档&#xff1a; http://serverfault.com/questions/662161/rrdtool-illegal-attempt-to-updatehttps://emacstragic.net/collectd-causing-rrd-illegal-attempt-to-update-using-time-errors/https://support.nagios.com/forum/viewtopic.php?f7&t26087 报错信息&am…

Grid R-CNN解读:商汤最新目标检测算法,定位精度超越Faster R-CNN

作者 | 周强来源 | 我爱计算机视觉Grid R-CNN是商汤科技最新发表于arXiv的一篇目标检测的论文&#xff0c;对Faster R-CNN架构的目标坐标回归部分进行了替换&#xff0c;取得了更加精确的定位精度&#xff0c;是最近非常值得一读的论文。今天就跟大家一起来细品此文妙处。一、作…

河南信息工程学校计算机协会申请书,协会成立申请书范文15篇.docx

协会成立申请书范文15篇协会成立申请书(一)&#xff1a;  尊敬的系团委领导&#xff1a;  摄影作为一门艺术不仅仅能够丰富同学们的学习生活&#xff0c;同时对学院的建设也起到一个不可黙灭的作用。为了发挥自身优势&#xff0c;参加学校社团文化建设&#xff0c;培养同学…

Luna的大学读书史(1,Intro)

Luna看了看自己的屋子&#xff0c;乱乱的一大摊&#xff0c;地上有的地方的灰都已经是厚厚的一层&#xff0c;有的角落甚至还结了蜘蛛网。床上的被子和衣服搅在一起&#xff0c;书桌上散乱的摆着几根笔和一个大号笔记本&#xff0c;草稿纸上画了若干莫名其妙的符号&#xff0c;…

【BIEE】数据透视表格第一列添加序号

现在有这么一个需求&#xff0c;需要在数据透视图的表格前面条件一列序号&#xff0c;作为行号&#xff0c;如下图&#xff1a;那么实现这个如何实现呢&#xff1f;只需要在BIEE分析编辑界面&#xff0c;新建一列&#xff0c;然后公式定义为&#xff1a;RCOUNT(RSUM(1)) &#…

2018最后一个月的Python热文Top10!赶紧学起来~

作者 | Mybridge译者 | linstancy整理 | Jane出品 | AI科技大本营过去一个月里&#xff0c;我们对近 1000 篇 Python 文章进行了排名&#xff0c;并挑选出热度前10的文章。这份清单的内容涵盖了包括 master python、REST APIs、twitter bot、random module、贝叶斯模型和线性回…

一处机房建设的败笔

第二个是关于空调的。是另一个机房&#xff0c;机房大概的布局如下图。左边空地是为日后扩展所留空间。右边有一排机柜&#xff0c;箭头所指为机柜前端方向。空调是一台艾默生的精密空调&#xff0c;被安装在机房的角落处。看出来什么问题吗&#xff1f;如果是你&#xff0c;你…

计算机组成原理实验pc,计算机组成原理实验报告5- PC实验

计算机组成原理实验报告5- PC实验2.5 PC实验姓名&#xff1a;孙坚 学号&#xff1a;134173733 班级&#xff1a;13计算机 日期&#xff1a;2015.5.15一&#xff0e;实验要求&#xff1a;利用CPTH 实验仪上的K16..K23 开关做为DBUS 的数据&#xff0c;其它开关做为控制信号&…

Python-socket编程

一.socket编程 Socket 是网络编程的一个抽象概念。通常我们用一个 Socket 表示“打开了一个网络链接”,而打开一个 Socket 需要知道目标计算机的 IP地址和端口号,再指定协议类型即可。 二.Python的socket编程实例 1.客户端操作 import socket s socket.socket()s.bind((, ))s.…

异步备份和还原数据库:.NET发现之旅(六)

信息系统是数据密集型的&#xff0c;数据的套帐&#xff0c;备份&#xff0c;还原是客户最希望有的功能&#xff0c;这一节课就讨论下C/S系统下数据库的异步备份和还原&#xff0c;B/S系统的数据备份和还原和这个类似。 既然是异步&#xff0c;首先会想到使用多线程技术。.NET平…

看动画轻松理解「链表」实现「LRU缓存淘汰算法」

作者 | 程序员小吴&#xff0c;哈工大学渣&#xff0c;目前正在学算法&#xff0c;开源项目 「 LeetCodeAnimation 」5500star&#xff0c;GitHub Trending 榜连续一月第一。本文为 AI科技大本营投稿文章&#xff08;欢迎给我们投稿&#xff0c;投稿请联系微信1092722531&#…

东北师大计算机考研报名人数,东北师范大学考研难吗?一般要什么水平才可以进入?...

问&#xff1a;从东北师范大学毕业的学生就业怎么样&#xff1f;值不值得报考&#xff1f;答&#xff1a;想要了解东北师范大学更多毕业生就业情况见>>>东北师范大学总之&#xff0c;东北师范大学就业率相对来说是比较良好的&#xff0c;如果大家对此学校感兴趣的话&a…

2009-徘徊-开场白

徘徊 不知道该怎么走coding已经随风散去思想不复存在&#xff0c;9月应该是个很好的月份。步入一个公司&#xff0c;当时的部长很强&#xff0c;虽然是ASP招我进来5天&#xff0c;走了。进入后的第一个是做一个RPGmaker的游戏coding 没什么关系08年刚开始似乎就很少编码了窝在宿…

未获得计算机访问权限,如何获取文件夹的访问权限

有些系统文件夹打不开&#xff0c;显示信息“拒绝你访问该文件夹”&#xff0c;有点让人摸不着头脑&#xff0c;明明我是管理员账号&#xff0c;明明整台电脑都是我的&#xff0c;你凭什么不让我访问呢&#xff0c;原来系统内是有比较复杂的权限分配的&#xff0c;我们可以稍作…

生成验证码点击可刷新

我把生成验证码与生成验证码图片封装成一个静态方法&#xff0c;放到ValidateCode类里 /// <summary> /// 生成验证码的类 /// </summary> public static class ValidateCode { /// <summary> /// 生成验证码 /// </summary> ///…

redhat enterprise linux 下配置本地yum源

一、在linux 6.1中本地yum源配置&#xff1a;首先编辑yum源配置文件我们可以再这个目录中新创建一个配置文件&#xff0c; #cd /etc/yum.repos.d, #vim yum.repo配置文件内容简介&#xff1a;[ ]内的是仓库的名字 name是仓库的描述也可以说是名字 baseurl 仓库的位置 enabled…

2018年最后几天学什么?给你关注度最高的10篇文章

作者 | Mybridge译者 | Linstancy整理 | Jane出品 | AI科技大本营【导语】我们从 12 月里近1400篇机器学习文章进行了排名&#xff0c;并挑选出最受大家关注的十篇文章。这些文章的内容主要是由 Google、DeepMind、OpenAI 等科技公司发布的自家在机器学习领域最新技术研究&…

详解Silverlight Treeview的HierarchicalDataTemplate使用

在Silverlight项目中&#xff0c;Treeview控件是比较常用的表示层次或者等级的控件&#xff0c;该控件可以非常清晰的显示数据之间的隶属关系。对于Treeview控件的基本使用已经有很多文章介绍&#xff0c;这里我想讲解一下Silverlight Treeivew的HierarchicalDataTemplate的使用…

win7计算机组策略打不开,win7系统gpedit.msc组策略打不开该怎么解决?方法步骤

电脑作为一款日常使用工具&#xff0c;用的时间长了&#xff0c;就会遇到各种事情&#xff0c;譬如win7系统gpedit.msc组策略打不开的状况&#xff0c;不用猜&#xff0c;正常情况下大伙第一次碰到win7系统gpedit.msc组策略打不开问题的肯定都会蒙圈&#xff0c;其实要完美解决…

免费公开课报名 | 达观数据个性化推荐系统实践

在人工智能浪潮之下&#xff0c;个性化推荐技术更是风靡业界&#xff0c;在金融、传媒、短视频、电商、教育等诸多领域大放异彩&#xff0c;影响人们生活的方方面面。不仅方便了人们获取各种各样的信息&#xff0c;还给企业带来了收益的大幅提升。本次公开课我们邀请到了达观数…

串口服务器支持多台上位机,RS485多机通信一台上位机两台下位机问题,

RS485一主机两个下位机&#xff0c;上位机通过发送下位机地址查询下位机两个按钮的状态&#xff0c;仿真时同时在P1口和P2口显示按钮状态一、原理图(原文件名:1.jpg)二、程序1、上位机程序#include "main_host.h"/* 延时t毫秒 */void delay(uint t){uint i;while(t--…

印度小哥“神剑”:PDF提取表格so easy!

作者 | 若名出品 | AI科技大本营如果经常跟数据表格打交道&#xff0c;那你应该体验过那种令人烦躁到抓狂的心情。但现在&#xff0c;学会下面将要介绍的一款工具的使用方法&#xff0c;相信我&#xff0c;它会让你在工作中简直不能更舒爽。Excalibur&#xff0c;从古希腊语翻译…