21xrx.com
2024-12-28 05:00:21 Saturday
登录
文章检索 我的文章 写文章
Java ArrayList sublist使用方法详解
2023-06-15 17:36:44 深夜i     --     --
Java ArrayList sublist 动态数组 视图 List操作

Java中的ArrayList是一种常用的动态数组,可以方便地添加、删除和修改元素。而sublist方法则可以将ArrayList中的一部分元素提取出来,形成一个新的List。接下来,本文将详细介绍Java ArrayList sublist的使用方法。

首先,我们需要了解sublist的方法签名:`List sublist(int fromIndex, int toIndex)`,其中参数fromIndex表示开始提取元素的位置(包括该位置),toIndex表示结束位置的下一个位置(不包括该位置)。

比如说,我们有一个ArrayList对象list,其中有10个元素。现在我们想提取其第3~6个元素(也就是下标为2~5的元素),可以使用如下代码:


List sublist = list.sublist(2, 6);

注意,这里我们将结果赋值给了一个新的List对象sublist,因为sublist只是list的一部分,并不是完整的list。

另外,我们需要明确的是,sublist返回的是一个视图,也就是说,它并不是一个新的list,而是在原来的list上做了一些限制和封装。因此,我们对sublist所做的修改会反映到原来的list上,而对原来的list所做的修改也会反映到sublist上。

举个例子,假设我们现在有一个Integer类型的ArrayList对象list,其中有5个元素:1、2、3、4、5。我们使用sublist提取出其中的子列表sublist1:


List sublist1 = list.sublist(1, 4);

此时,list中的元素和sublist1中的元素依次为:1、2、3、4、5,和2、3、4。现在我们对sublist1进行一些修改:


sublist1.set(1, 100);

sublist1.add(200);

此时list中的元素和sublist1中的元素依次为:1、2、100、4、5、200,和2、100、4、5、200。我们可以看到,sublist1中的修改也影响到了list,因为它只是list的一个视图。

最后,我们需要注意的是,sublist不支持所有的List操作,例如removeAll、retainAll等方法都不可用。如果需要对sublist进行这些操作,可以先将sublist转化为一个新的ArrayList对象,再进行操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复