java删除有序集合中的某一段长度及数组拷贝

一、删除有序集合某一段内容

     删除集合中的某一段长度,首先需要将集合分割,如想删除集合最开始的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);
        }
    }
}

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值