arraylist的几种截取方式
ArrayList是Java中常见的数据结构,用于存储一组数据。在开发中,经常需要对ArrayList进行截取操作,截取出需要的部分数据。本文将介绍ArrayList的几种截取方式。
1. subList方法
ArrayList提供了subList方法,用于截取一段子序列。方法签名为:
```java
public List<E> subList(int fromIndex, int toIndex)
```
其中,fromIndex表示起始位置,toIndex表示终止位置。返回的是一个新的List,包含原ArrayList中从fromIndex到toIndex-1的元素。需要注意的是,返回的List是原始ArrayList的视图,对返回的List的操作也会影响原ArrayList。
例如,下面是一个使用subList方法截取部分数据的示例代码:
```java
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> subList = list.subList(1, 4); // 截取的是[2, 3, 4]
System.out.println(subList); // [2, 3, 4]
subList.set(1, 5); // 修改subList中的元素
System.out.println(list); // [1, 5, 4, 5, 6]
```java arraylist用法
2. pyOf方法
从Java 11开始,ArrayList提供了pyOf方法,用于创建一个新的List,包含原List的所有元素或部分元素。方法签名为:
```java
public static <E> List<E> copyOf(Collection<? extends E> coll)
public static <E> List<E> copyOf(Collection<? extends E> coll, int length)
```
第一个方法表示将原List中的所有元素复制到新的List中;第二个方法表示将原List中的前length个元素复制到新的List中。
需要注意的是,返回的是一个新的List,对返回的List的操作不会影响原ArrayList。
3. toArray方法
ArrayList提供了toArray方法,用于将ArrayList中的元素转换为数组。方法有两种形式,分别是无参和带参数的:
```java
public Object[] toArray()
public <T> T[] toArray(T[] a)
```
无参方法返回一个Object类型的数组,带参数方法返回一个指定类型的数组。
4. Stream API
从Java 8开始,ArrayList支持Stream API,可以使用Stream的slice方法进行截取操作。slice方法的参数为起始下标和终止下标,返回的是一个新的Stream。
使用Stream API的好处是,可以进行一系列的数据处理操作。需要注意的是,Stream API返回的对象是一个新的流,对其的操作不会影响原ArrayList。
综上所述,ArrayList提供了多种截取方式,可以根据具体需求进行选择。需要注意的是,在对截取结果进行修改时,需要注意是否影响原ArrayList。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论