一、删除有序集合某一段内容
删除集合中的某一段长度,首先需要将集合分割,如想删除集合最开始的100条记录
list.subList(0, 100)
方法返回值是一个集合,再拿原来的集合去删除就可以了
list.removeAll(list.subList(0, 100));
二、数组拷贝
主要有两种比较常用的工具类
第一种:
// src:原始数组;srcPos:起始位置;dest:要复制的数组;destPos 起始位置;length:复制的长度
System.arraycopy(Object src, int srcPos,Object dest, int destPos,int length);
第二种:
// original:原始数组 from:起始位置 to:结束位置
Arrays.copyOfRange(int[] original, int from, int to)
需注意,两种拷贝方式都属于浅拷贝,只能用来处理基本数据类型,复杂数据类型如果用这种拷贝方式的话对象引用并没有改变,修改新对象属性仍然会导致原先的属性变化。另外两种复制方式都是包含开始坐标不包含结束坐标
完整测试代码如下:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 截取集合长度及数组复制
*/
public class myTest {
public static void main(String[] args) {
/*
* 删除固定长度集合
*/
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 120; i++) {
list.add(i);
}
System.out.println("原始集合:" + list);
list.removeAll(list.subList(0, 100));
System.out.println("删除之后集合:" + list);
/*
* 数组复制
*/
int[] aa = new int[]{1, 2, 3, 4};
int[] bb = new int[4];
// aa:原始数组;0:起始位置;bb:要复制的数组;0 起始位置;aa.length:复制的长度
System.arraycopy(aa, 0, bb, 0, aa.length);
for (int i : bb) {
System.out.println("bb" + i);
}
int[] cc = Arrays.copyOfRange(aa, 0, 4);
for (int i : cc) {
System.out.println("cc" + i);
}
}
}
运行结果: