关于java的sublist的信息

博主:adminadmin 2022-11-29 08:53:09 57

今天给各位分享java的sublist的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

List集合中subList()方法带的2个参数是什么意思

比如集合中的内容为1,2,3,,4,5

list.sublist(2,4)

就返回一个子集合:它的内容包括从下标为2到下标为4,而且这是左闭右开的

就是说是从大于等于2到小于4

那子集内容就是3,4(集合的下标都是从0开始)

java sublist 是复制 还是引用

所以,你对原来的list和返回的list做的“非结构性修改”(non-structural changes),都会影响到彼此对方。

所谓的“非结构性修改”,是指不涉及到list的大小改变的修改。相反,结构性修改,指改变了list大小的修改。

那么,如果涉及到结构性修改会怎么样呢?

如果发生结构性修改的是返回的子list,那么原来的list的大小也会发生变化;

而如果发生结构性修改的是原来的list(不包括由于返回的子list导致的改变),那么返回的子list语义上将会是undefined。在AbstractList(ArrayList的父类)中,undefined的具体表现形式是抛出一个ConcurrentModificationException。

因此,如果你在调用了sublist返回了子list之后,如果修改了原list的大小,那么之前产生的子list将会失效,变得不可使用。

LinList 不是抽象的,并且未覆盖 java.util.List 中的抽象方法 subList(int,int),求助JAVA解决方法

LinList是实现List接口的,所以必须实现接口中所有的方法。而subList(int,int)这个方法你没有在LinList中实现。

List集合中subList方法带的2个参数是什么意思

这个方法 java.util.List.subList(int, int) 作用

返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图

我们先来看下 API

两个参数表示

fromIndex - subList 的低端(包括)

toIndex - subList 的高端(不包括)

使用示例:

下面 的list 中有四个元素, 我现在要取其中的 第二个元素 和第三个元素

    public static void main(String[] args){

        ListString list = new ArrayListString();

        list.add("fei");

        list.add("long");

        list.add("feiong");

        list.add("飞天奔月");

        System.out.println(list.subList(1, 3));

    }

输出:

[long, feiong]

java list sublist 会不会下标越界

上图是从JDK源码中截取粗来的,很明显,他会进行下标检查,所以sublist方法是会下标越界的

java怎么把一个表中的框分成两半

Java中将List分成两个子列表的最简单,最标准和/或最有效的方法是什么?可以改变原始列表,因此不需要复制。方法签名可以是

/** Split a list into two sublists. The original list will be modified to

* have size i and will contain exactly the same elements at indices 0

* through i-1 as it had originally; the returned list will have size

* len-i (where len is the size of the original list before the call)

* and will have the same elements at indices 0 through len-(i+1) as

* the original list had at indices i through len-1.

*/

List split(List list, int i);

[EDIT] List.subList返回原始列表上的视图,如果原始视图被修改,则视图无效。所以split不能使用子列表,除非它也免除了原始引用(或者,如在Marc Novakowski的答案,使用subList,但立即复制结果)。

java的sublist的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java的sublist的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。